summaryrefslogtreecommitdiff
path: root/tests/slurp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/slurp.c')
-rw-r--r--tests/slurp.c9
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)) {