about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-02-13 13:34:24 +0000
committerJoseph Myers <joseph@codesourcery.com>2019-02-13 13:34:24 +0000
commit86140c6223b5d14d773cf3050ffd0d14977c2c2d (patch)
tree4a046647a5946527009fdc5b0812c1b70fe176a4
parent16f87cfd630522afe745a0cf665287b8fe206cf4 (diff)
downloadglibc-86140c6223b5d14d773cf3050ffd0d14977c2c2d.tar.gz
glibc-86140c6223b5d14d773cf3050ffd0d14977c2c2d.tar.xz
glibc-86140c6223b5d14d773cf3050ffd0d14977c2c2d.zip
Avoid fall-through in test-container if execlp fails.
One of the implicit-fallthrough warnings from compiling glibc with
-Wextra appears to indicate an actual bug: the test-container code
could fall through inappropriately if execlp returns (which only
occurs on error).  This patch adds appropriate error handling in this
case to avoid that fall-through.

Tested for x86_64.

	* support/test-container.c (recursive_remove): Use FAIL_EXIT1 if
	execlp returns.
-rw-r--r--ChangeLog5
-rw-r--r--support/test-container.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 56f30076dc..4279eeedb3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-13  Joseph Myers  <joseph@codesourcery.com>
+
+	* support/test-container.c (recursive_remove): Use FAIL_EXIT1 if
+	execlp returns.
+
 2019-02-12  Wilco Dijkstra  <wdijkstr@arm.com>
 
 	* benchtests/bench-strcasecmp.c (stupid_strcasecmp): Remove.
diff --git a/support/test-container.c b/support/test-container.c
index a24b24c03b..ed911e33f9 100644
--- a/support/test-container.c
+++ b/support/test-container.c
@@ -361,6 +361,7 @@ recursive_remove (char *path)
   case 0:
     /* Child.  */
     execlp ("rm", "rm", "-rf", path, NULL);
+    FAIL_EXIT1 ("exec rm: %m");
   default:
     /* Parent.  */
     waitpid (child, &status, 0);