From 15e2d64e15db82d0bfcbb14945b290038a3f0031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Fri, 30 Dec 2005 23:36:26 +0000 Subject: [PATCH] Only clear sb.st_size if it is clearly wrong or meaningless. This fixes mirror mode. PR: bin/86940 MFC after: 2 weeks --- usr.bin/fetch/fetch.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/usr.bin/fetch/fetch.c b/usr.bin/fetch/fetch.c index e37e2843a19..027c6f628ea 100644 --- a/usr.bin/fetch/fetch.c +++ b/usr.bin/fetch/fetch.c @@ -424,17 +424,17 @@ fetch(char *URL, const char *path) r = stat(path, &sb); if (r == 0 && r_flag && S_ISREG(sb.st_mode)) { url->offset = sb.st_size; - } else { + } else if (r == -1 || !S_ISREG(sb.st_mode)) { /* * Whatever value sb.st_size has now is either * wrong (if stat(2) failed) or irrelevant (if the * path does not refer to a regular file) */ sb.st_size = -1; - if (r == -1 && errno != ENOENT) { - warnx("%s: stat()", path); - goto failure; - } + } + if (r == -1 && errno != ENOENT) { + warnx("%s: stat()", path); + goto failure; } }