diff options
| author | 2026-04-10 12:21:17 +0200 | |
|---|---|---|
| committer | 2026-04-10 12:21:17 +0200 | |
| commit | 9dfcfe8dc22233cb08aa22ba743640d8db92c4e7 (patch) | |
| tree | 12020050e429f5acac7473301838fd3895c9312b | |
| parent | f41b1ea67045e0c09339974d83e389972d84f166 (diff) | |
| download | libplist-9dfcfe8dc22233cb08aa22ba743640d8db92c4e7.tar.gz libplist-9dfcfe8dc22233cb08aa22ba743640d8db92c4e7.tar.bz2 | |
Fix fread() unused return values by actually handling errors
| -rw-r--r-- | test/plist_btest.c | 8 | ||||
| -rw-r--r-- | test/plist_jtest.c | 8 | ||||
| -rw-r--r-- | test/plist_otest.c | 7 | ||||
| -rw-r--r-- | test/plist_test.c | 8 | ||||
| -rw-r--r-- | tools/plistutil.c | 7 |
5 files changed, 34 insertions, 4 deletions
diff --git a/test/plist_btest.c b/test/plist_btest.c index 0f2c1c8..32ba364 100644 --- a/test/plist_btest.c +++ b/test/plist_btest.c | |||
| @@ -66,7 +66,13 @@ int main(int argc, char *argv[]) | |||
| 66 | stat(file_in, filestats); | 66 | stat(file_in, filestats); |
| 67 | size_in = filestats->st_size; | 67 | size_in = filestats->st_size; |
| 68 | plist_bin = (char *) malloc(sizeof(char) * (size_in + 1)); | 68 | plist_bin = (char *) malloc(sizeof(char) * (size_in + 1)); |
| 69 | fread(plist_bin, sizeof(char), size_in, iplist); | 69 | if (fread(plist_bin, sizeof(char), size_in, iplist) != (size_t)size_in) { |
| 70 | printf("Failed to read input file\n"); | ||
| 71 | fclose(iplist); | ||
| 72 | free(plist_bin); | ||
| 73 | free(filestats); | ||
| 74 | return 3; | ||
| 75 | } | ||
| 70 | fclose(iplist); | 76 | fclose(iplist); |
| 71 | 77 | ||
| 72 | 78 | ||
diff --git a/test/plist_jtest.c b/test/plist_jtest.c index 130e3c7..570886d 100644 --- a/test/plist_jtest.c +++ b/test/plist_jtest.c | |||
| @@ -66,7 +66,13 @@ int main(int argc, char *argv[]) | |||
| 66 | stat(file_in, filestats); | 66 | stat(file_in, filestats); |
| 67 | size_in = filestats->st_size; | 67 | size_in = filestats->st_size; |
| 68 | plist_json = (char *) malloc(sizeof(char) * (size_in + 1)); | 68 | plist_json = (char *) malloc(sizeof(char) * (size_in + 1)); |
| 69 | fread(plist_json, sizeof(char), size_in, iplist); | 69 | if (fread(plist_json, sizeof(char), size_in, iplist) != (size_t)size_in) { |
| 70 | printf("Failed to read input file\n"); | ||
| 71 | fclose(iplist); | ||
| 72 | free(plist_json); | ||
| 73 | free(filestats); | ||
| 74 | return 3; | ||
| 75 | } | ||
| 70 | fclose(iplist); | 76 | fclose(iplist); |
| 71 | plist_json[size_in] = 0; | 77 | plist_json[size_in] = 0; |
| 72 | 78 | ||
diff --git a/test/plist_otest.c b/test/plist_otest.c index 14168f8..b2d1c94 100644 --- a/test/plist_otest.c +++ b/test/plist_otest.c | |||
| @@ -66,7 +66,12 @@ int main(int argc, char *argv[]) | |||
| 66 | stat(file_in, &filestats); | 66 | stat(file_in, &filestats); |
| 67 | size_in = filestats.st_size; | 67 | size_in = filestats.st_size; |
| 68 | plist_ostep = (char *) malloc(sizeof(char) * (size_in + 1)); | 68 | plist_ostep = (char *) malloc(sizeof(char) * (size_in + 1)); |
| 69 | fread(plist_ostep, sizeof(char), size_in, iplist); | 69 | if (fread(plist_ostep, sizeof(char), size_in, iplist) != (size_t)size_in) { |
| 70 | printf("Failed to read input file\n"); | ||
| 71 | fclose(iplist); | ||
| 72 | free(plist_ostep); | ||
| 73 | return 3; | ||
| 74 | } | ||
| 70 | fclose(iplist); | 75 | fclose(iplist); |
| 71 | plist_ostep[size_in] = 0; | 76 | plist_ostep[size_in] = 0; |
| 72 | 77 | ||
diff --git a/test/plist_test.c b/test/plist_test.c index 6e3947a..6e94c57 100644 --- a/test/plist_test.c +++ b/test/plist_test.c | |||
| @@ -66,7 +66,13 @@ int main(int argc, char *argv[]) | |||
| 66 | stat(file_in, filestats); | 66 | stat(file_in, filestats); |
| 67 | size_in = filestats->st_size; | 67 | size_in = filestats->st_size; |
| 68 | plist_xml = (char *) malloc(sizeof(char) * (size_in + 1)); | 68 | plist_xml = (char *) malloc(sizeof(char) * (size_in + 1)); |
| 69 | fread(plist_xml, sizeof(char), size_in, iplist); | 69 | if (fread(plist_xml, sizeof(char), size_in, iplist) != (size_t)size_in) { |
| 70 | printf("Failed to read input file\n"); | ||
| 71 | fclose(iplist); | ||
| 72 | free(plist_xml); | ||
| 73 | free(filestats); | ||
| 74 | return 3; | ||
| 75 | } | ||
| 70 | fclose(iplist); | 76 | fclose(iplist); |
| 71 | 77 | ||
| 72 | 78 | ||
diff --git a/tools/plistutil.c b/tools/plistutil.c index 95ec254..37bb044 100644 --- a/tools/plistutil.c +++ b/tools/plistutil.c | |||
| @@ -337,6 +337,13 @@ int main(int argc, char *argv[]) | |||
| 337 | return 1; | 337 | return 1; |
| 338 | } | 338 | } |
| 339 | read_size = fread(plist_entire, sizeof(char), filestats.st_size, iplist); | 339 | read_size = fread(plist_entire, sizeof(char), filestats.st_size, iplist); |
| 340 | if (read_size != (size_t)filestats.st_size) { | ||
| 341 | fprintf(stderr, "ERROR: Could not read from input file '%s'\n", options->in_file); | ||
| 342 | fclose(iplist); | ||
| 343 | free(plist_entire); | ||
| 344 | free(options); | ||
| 345 | return 1; | ||
| 346 | } | ||
| 340 | plist_entire[read_size] = '\0'; | 347 | plist_entire[read_size] = '\0'; |
| 341 | fclose(iplist); | 348 | fclose(iplist); |
| 342 | } | 349 | } |
