From: Stefan Weil Date: Sun, 3 Apr 2011 19:36:36 +0000 (+0200) Subject: tests/cris: Fix some errors and potential crashes X-Git-Tag: v0.15.0-rc0~577 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2917dce477f91e933052f5555b4c6be961ff624e;p=thirdparty%2Fqemu.git tests/cris: Fix some errors and potential crashes These errors were reported by cppcheck: tests/cris/check_openpf1.c:30: error: Mismatching allocation and deallocation: f tests/cris/check_openpf2.c:13: error: Mismatching allocation and deallocation: f tests/cris/check_stat3.c:16: error: Buffer overrun possible for long cmd-line args tests/cris/check_stat4.c:18: error: Buffer overrun possible for long cmd-line args The first two are obvious coding errors (fopen needs fclose, not close). The last two may seem less important (nobody will start test code with an argument of more than 1022 characters which raises a buffer overrun). Fixing them nevertheless helps with static code checks like those done by cppcheck. Signed-off-by: Stefan Weil Signed-off-by: Edgar E. Iglesias --- diff --git a/tests/cris/check_openpf1.c b/tests/cris/check_openpf1.c index 1d71e0bddb0..fdcf4c5c3fc 100644 --- a/tests/cris/check_openpf1.c +++ b/tests/cris/check_openpf1.c @@ -27,7 +27,7 @@ int main (int argc, char *argv[]) f = fopen (fnam, "rb"); if (f == NULL) abort (); - close (f); + fclose(f); /* Cover another execution path. */ if (fopen ("/nonexistent", "rb") != NULL diff --git a/tests/cris/check_openpf2.c b/tests/cris/check_openpf2.c index f44a8f34bb2..5d56189f8ea 100644 --- a/tests/cris/check_openpf2.c +++ b/tests/cris/check_openpf2.c @@ -10,7 +10,7 @@ int main (int argc, char *argv[]) FILE *f = fopen ("check_openpf2.c", "rb"); if (f == NULL) abort (); - close (f); + fclose(f); printf ("pass\n"); return 0; } diff --git a/tests/cris/check_stat3.c b/tests/cris/check_stat3.c index 3b5b217a1cf..36a9d5d2744 100644 --- a/tests/cris/check_stat3.c +++ b/tests/cris/check_stat3.c @@ -13,7 +13,7 @@ int main (int argc, char *argv[]) char path[1024] = "/"; struct stat buf; - strcat (path, argv[0]); + strncat(path, argv[0], sizeof(path) - 2); if (stat (".", &buf) != 0 || !S_ISDIR (buf.st_mode)) abort (); diff --git a/tests/cris/check_stat4.c b/tests/cris/check_stat4.c index e1955cab347..04f21fe7c4f 100644 --- a/tests/cris/check_stat4.c +++ b/tests/cris/check_stat4.c @@ -15,7 +15,7 @@ int main (int argc, char *argv[]) char path[1024] = "/"; struct stat buf; - strcat (path, argv[0]); + strncat(path, argv[0], sizeof(path) - 2); if (lstat (".", &buf) != 0 || !S_ISDIR (buf.st_mode)) abort ();