Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Sep 2011 15:57:13 +0000 (UTC)
From:      Dag-Erling Smorgrav <des@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r225800 - head/usr.bin/fetch
Message-ID:  <201109271557.p8RFvDZB030465@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: des
Date: Tue Sep 27 15:57:13 2011
New Revision: 225800
URL: http://svn.freebsd.org/changeset/base/225800

Log:
  Followup to r225599: the fseek() was a no-op since the file was opened
  in append mode.  Open it in read-write mode instead.  Also move the
  fseek up one level to cover the (unlikely but not impossible) case where
  the server accepts ranges but does not send a Content-Size header.
  
  PR:		bin/117277
  MFC after:	3 weeks

Modified:
  head/usr.bin/fetch/fetch.c

Modified: head/usr.bin/fetch/fetch.c
==============================================================================
--- head/usr.bin/fetch/fetch.c	Tue Sep 27 15:08:59 2011	(r225799)
+++ head/usr.bin/fetch/fetch.c	Tue Sep 27 15:57:13 2011	(r225800)
@@ -540,7 +540,7 @@ fetch(char *URL, const char *path)
 				goto failure;
 			}
 			/* we got it, open local file */
-			if ((of = fopen(path, "a")) == NULL) {
+			if ((of = fopen(path, "r+")) == NULL) {
 				warn("%s: fopen()", path);
 				goto failure;
 			}
@@ -559,13 +559,13 @@ fetch(char *URL, const char *path)
 				sb = nsb;
 				/* picked up again later */
 			}
-			/* seek to where we left off */
-			if (of != NULL && fseek(of, url->offset, SEEK_SET) != 0) {
-				warn("%s: fseek()", path);
-				fclose(of);
-				of = NULL;
-				/* picked up again later */
-			}
+		}
+		/* seek to where we left off */
+		if (of != NULL && fseek(of, url->offset, SEEK_SET) != 0) {
+			warn("%s: fseek()", path);
+			fclose(of);
+			of = NULL;
+			/* picked up again later */
 		}
 	} else if (m_flag && sb.st_size != -1) {
 		/* mirror mode, local file exists */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201109271557.p8RFvDZB030465>