mirror of
https://github.com/rkd77/elinks.git
synced 2025-02-02 15:09:23 -05:00
save_textarea_file(): handle return values of fwrite() and fclose(). Patch
by Alexey Tourbin.
This commit is contained in:
parent
1e00f2d10d
commit
ecce8bfa91
@ -534,6 +534,7 @@ save_textarea_file(unsigned char *value)
|
|||||||
unsigned char *filename;
|
unsigned char *filename;
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
int fd;
|
int fd;
|
||||||
|
size_t nmemb;
|
||||||
|
|
||||||
filename = get_tempdir_filename("elinks-area-XXXXXX");
|
filename = get_tempdir_filename("elinks-area-XXXXXX");
|
||||||
if (!filename) return NULL;
|
if (!filename) return NULL;
|
||||||
@ -546,14 +547,22 @@ save_textarea_file(unsigned char *value)
|
|||||||
|
|
||||||
fp = fdopen(fd, "w");
|
fp = fdopen(fd, "w");
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
|
|
||||||
|
error:
|
||||||
unlink(filename);
|
unlink(filename);
|
||||||
mem_free(filename);
|
mem_free(filename);
|
||||||
close(fd);
|
close(fd);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
fwrite(value, strlen(value), 1, fp);
|
nmemb = fwrite(value, strlen(value), 1, fp);
|
||||||
fclose(fp);
|
if (nmemb != 1) {
|
||||||
|
fclose(fp);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fclose(fp) != 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user