]> granicus.if.org Git - curl/commitdiff
respect error code from ftruncate(), mentioned by Peter Sylvester
authorDaniel Stenberg <daniel@haxx.se>
Mon, 3 Aug 2009 09:06:35 +0000 (09:06 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 3 Aug 2009 09:06:35 +0000 (09:06 +0000)
src/main.c

index c7669ad115e597a8698063a8d0cb329aab33fc34..ddca7332280aadb88fa635d08e7e79eb40800748 100644 (file)
@@ -4991,7 +4991,14 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
                 fflush(outs.stream);
                 /* truncate file at the position where we started appending */
 #ifdef HAVE_FTRUNCATE
-                ftruncate( fileno(outs.stream), outs.init);
+                if(ftruncate( fileno(outs.stream), outs.init)) {
+                  /* when truncate fails, we can't just append as then we'll
+                     create something strange, bail out */
+                  if(!config->mute)
+                    fprintf(config->errors,
+                            "failed to truncate, exiting\n");
+                  break;
+                }
                 /* now seek to the end of the file, the position where we
                    just truncated the file in a large file-safe way */
                 fseek(outs.stream, 0, SEEK_END);