summaryrefslogtreecommitdiff
path: root/src/dd.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1999-04-18 13:32:35 +0000
committerJim Meyering <jim@meyering.net>1999-04-18 13:32:35 +0000
commit8f913cc64f0afbd2e920f70fce20523c301a0135 (patch)
tree9a054416b67c843f713590ee27bf57c3f1282121 /src/dd.c
parent64dec9fafb31eb343c12ee0c36c0d4624c68a281 (diff)
downloadcoreutils-8f913cc64f0afbd2e920f70fce20523c301a0135.tar.xz
(main): Open the output file with *read* access
only if we might need to read to satisfy a `seek=' request. From Matthias Urlichs.
Diffstat (limited to 'src/dd.c')
-rw-r--r--src/dd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dd.c b/src/dd.c
index e4d3cc9e4..c4a013ec1 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -1121,7 +1121,9 @@ main (int argc, char **argv)
if (output_file != NULL)
{
- int omode = O_RDWR | O_CREAT;
+ /* Open the output file with *read* access only if we might
+ need to read to satisfy a `seek=' request. */
+ int omode = (seek_record ? O_RDWR : O_WRONLY) | O_CREAT;
if (seek_record == 0 && !(conversions_mask & C_NOTRUNC))
omode |= O_TRUNC;