aboutsummaryrefslogtreecommitdiff
path: root/src/sg_dd.c
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2021-06-07 15:21:01 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2021-06-07 15:21:01 +0000
commit30363466e3580cae5f428c9bf35caa934cef469b (patch)
tree265f9bd6b4a8ebcf7102908ca0596dc1f42ce28a /src/sg_dd.c
parentd65eadbdaa302c7b83c059569a28efd3304947e4 (diff)
downloadsg3_utils-30363466e3580cae5f428c9bf35caa934cef469b.tar.gz
sg_vpd: fix do_hex type on some recent pages; sg_dd: don't close negative file descriptors; pt_linux_nvme: fix fua setting
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@903 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'src/sg_dd.c')
-rw-r--r--src/sg_dd.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/sg_dd.c b/src/sg_dd.c
index 13cfd780..4266972f 100644
--- a/src/sg_dd.c
+++ b/src/sg_dd.c
@@ -70,7 +70,7 @@
#include "sg_unaligned.h"
#include "sg_pr2serr.h"
-static const char * version_str = "6.26 20210512";
+static const char * version_str = "6.27 20210601";
#define ME "sg_dd: "
@@ -2479,7 +2479,7 @@ main(int argc, char * argv[])
} else if (FT_DEV_NULL & out_type)
;
else {
- off64_t offset = blocks * blk_sz;
+ off64_t offset = (off64_t)blocks * blk_sz;
off64_t off_res;
if (verbose > 2)
@@ -2681,10 +2681,12 @@ bypass_copy:
free(wrkBuff);
if (free_zeros_buff)
free(free_zeros_buff);
- if (STDIN_FILENO != infd)
+ if ((STDIN_FILENO != infd) && (infd >= 0))
close(infd);
- if (! ((STDOUT_FILENO == outfd) || (FT_DEV_NULL & out_type)))
- close(outfd);
+ if (! ((STDOUT_FILENO == outfd) || (FT_DEV_NULL & out_type))) {
+ if (outfd >= 0)
+ close(outfd);
+ }
if (dry_run > 0)
goto bypass2;