diff options
Diffstat (limited to 'tests/slurp.c')
-rw-r--r-- | tests/slurp.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/tests/slurp.c b/tests/slurp.c index 7b5936f..6ea8618 100644 --- a/tests/slurp.c +++ b/tests/slurp.c @@ -7,7 +7,7 @@ int slurp_for_tests(const char *const FNAME, char **strref) { - int rc = 0; + int rc = -1; FILE *file = NULL; char *str = NULL; @@ -15,45 +15,40 @@ slurp_for_tests(const char *const FNAME, char **strref) { file = fopen(FNAME, "r"); if (!file) { perror("fopen(FNAME, \"r\")"); - rc = -1; goto out; } if (fseek(file, 0L, SEEK_END)) { perror("fseek(file, 0L, SEEK_END)"); - rc = -1; goto out; } const long lsize = ftell(file); if (lsize == -1) { perror("ftell(file)"); - rc = -1; goto out; } const size_t size = (size_t)lsize + sizeof(char); if (fseek(file, 0L, SEEK_SET)) { perror("fseek(file, 0L, SEEK_SET)"); - rc = -1; goto out; } str = malloc(size); if (!str) { perror("malloc(...)"); - rc = -1; goto out; } if (fread(str, sizeof(char), size - 1, file) != size - 1) { perror("fread(...)"); - rc = -1; goto out; } str[size - 1] = '\0'; *strref = str; + rc = 0; out: if (file) { if (fclose(file)) { |