summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMickael Savinaud <savmickael@users.noreply.github.com>2011-08-31 16:51:37 +0000
committerMickael Savinaud <savmickael@users.noreply.github.com>2011-08-31 16:51:37 +0000
commit22a2f98cedb14f0db778b131d67c6bd9b8835a4e (patch)
treebdc1f713f8d6b0e7c29934906607f95acd4a0ffe /tests
parentaaa47850c3c4da2fc7dde0ef6371c97f9e7e36c7 (diff)
fixed a segfault with fgets return value for some cases inside test function compare_dump_file()
Diffstat (limited to 'tests')
-rw-r--r--tests/compare_dump_files.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/tests/compare_dump_files.c b/tests/compare_dump_files.c
index c95d1610..687cc948 100644
--- a/tests/compare_dump_files.c
+++ b/tests/compare_dump_files.c
@@ -190,7 +190,6 @@ int main(int argc, char **argv)
size_t nbytes = 2048;
int CRLF_shift=1;
char *strbase, *strtest, *strbase_d, *strtest_d;
- char *return_value_fgets;
printf("Files differ at line %lu:\n", l);
fseek(fbase,pos,SEEK_SET);
@@ -207,27 +206,29 @@ int main(int argc, char **argv)
strbase = (char *) malloc(nbytes + 1);
strtest = (char *) malloc(nbytes + 1);
- return_value_fgets = fgets(strbase, nbytes, fbase);
- if (!strcmp(return_value_fgets,strbase))
- fprintf(stderr,"\nWARNING: fgets return a value different that the first argument");
- free(return_value_fgets);
+ if (fgets(strbase, nbytes, fbase) == NULL)
+ fprintf(stderr,"\nWARNING: fgets return a NULL value");
+ else
+ {
+ if (fgets(strtest, nbytes, ftest) == NULL)
+ fprintf(stderr,"\nWARNING: fgets return a NULL value");
+ else
+ {
+ strbase_d = (char *) malloc(strlen(strbase)+1);
+ strtest_d = (char *) malloc(strlen(strtest)+1);
+ strncpy(strbase_d, strbase, strlen(strbase)-1);
+ strncpy(strtest_d, strtest, strlen(strtest)-CRLF_shift);
+ strbase_d[strlen(strbase)-1] = '\0';
+ strtest_d[strlen(strtest)-CRLF_shift] = '\0';
+ printf("<%s> vs. <%s>\n", strbase_d, strtest_d);
+ free(strbase_d);free(strtest_d);
+ }
+ }
- return_value_fgets = fgets(strtest, nbytes, ftest);
- if (!strcmp(return_value_fgets,strtest))
- fprintf(stderr,"\nWARNING: fgets return a value different that the first argument");
- free(return_value_fgets);
+ free(strbase);free(strtest);
+
+ same = 0;
- strbase_d = (char *) malloc(strlen(strbase)+1);
- strtest_d = (char *) malloc(strlen(strtest)+1);
- strncpy(strbase_d, strbase, strlen(strbase)-1);
- strncpy(strtest_d, strtest, strlen(strtest)-CRLF_shift);
- strbase_d[strlen(strbase)-1] = '\0';
- strtest_d[strlen(strtest)-CRLF_shift] = '\0';
- printf("<%s> vs. <%s>\n", strbase_d, strtest_d);
-
- free(strbase);free(strtest);
- free(strbase_d);free(strtest_d);
- same = 0;
break;
}
else