]> git.proxmox.com Git - qemu.git/commitdiff
tests/cris: Fix some errors and potential crashes
authorStefan Weil <weil@mail.berlios.de>
Sun, 3 Apr 2011 19:36:36 +0000 (21:36 +0200)
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>
Sun, 3 Apr 2011 19:58:38 +0000 (21:58 +0200)
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 <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
tests/cris/check_openpf1.c
tests/cris/check_openpf2.c
tests/cris/check_stat3.c
tests/cris/check_stat4.c

index 1d71e0bddb08cae20851e4006d98f7fb7a4a4331..fdcf4c5c3fc18e3cd839c7ad2963eedf7b4779c5 100644 (file)
@@ -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
index f44a8f34bb27771fac6958a73fc92ee108e6f4a7..5d56189f8eaa77225b478f1391926feccc9b4a14 100644 (file)
@@ -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;
 }
index 3b5b217a1cfc833672dfb30dac396e14e36625c4..36a9d5d2744b614901835b288dbc2fc86b09c0cd 100644 (file)
@@ -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 ();
index e1955cab3471d83e7fd1913b3f0c3c73c1337f81..04f21fe7c4f53e042b9cf230d576495aaf009180 100644 (file)
@@ -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 ();