mirror of
https://github.com/moparisthebest/curl
synced 2025-03-11 07:39:50 -04:00
curl: check fseek() return code and bail on error
Detected by coverity. CID 1418137.
This commit is contained in:
parent
1e548f7784
commit
299896ca09
@ -1668,6 +1668,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
||||
retry_sleep = RETRY_SLEEP_MAX;
|
||||
}
|
||||
if(outs.bytes && outs.filename && outs.stream) {
|
||||
int rc;
|
||||
/* We have written data to a output file, we truncate file
|
||||
*/
|
||||
if(!global->mute)
|
||||
@ -1688,14 +1689,21 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
||||
}
|
||||
/* 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);
|
||||
rc = fseek(outs.stream, 0, SEEK_END);
|
||||
#else
|
||||
/* ftruncate is not available, so just reposition the file
|
||||
to the location we would have truncated it. This won't
|
||||
work properly with large files on 32-bit systems, but
|
||||
most of those will have ftruncate. */
|
||||
fseek(outs.stream, (long)outs.init, SEEK_SET);
|
||||
rc = fseek(outs.stream, (long)outs.init, SEEK_SET);
|
||||
#endif
|
||||
if(rc) {
|
||||
if(!global->mute)
|
||||
fprintf(global->errors,
|
||||
"failed seeking to end of file, exiting\n");
|
||||
result = CURLE_WRITE_ERROR;
|
||||
goto quit_urls;
|
||||
}
|
||||
outs.bytes = 0; /* clear for next round */
|
||||
}
|
||||
continue; /* curl_easy_perform loop */
|
||||
|
Loading…
x
Reference in New Issue
Block a user