Check return value from fgets and strchr instead of assuming they
worked.

[v2]

Don't do any necessary work inside the assert call.
Also make sure the return value was long enough.

Signed-off-by: Keith Packard <[email protected]>
---

Responding to IRC review comments from Jamey

 test/signal-logging.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/test/signal-logging.c b/test/signal-logging.c
index 88b37c1..a72675f 100644
--- a/test/signal-logging.c
+++ b/test/signal-logging.c
@@ -178,9 +178,14 @@ static void logging_format(void)
     LogInit(log_file_path, NULL);
     assert(f = fopen(log_file_path, "r"));
 
-#define read_log_msg(msg) \
-    fgets(read_buf, sizeof(read_buf), f); \
-    msg = strchr(read_buf, ']') + 2; /* advance past [time.stamp] */
+#define read_log_msg(msg) do {                                  \
+        msg = fgets(read_buf, sizeof(read_buf), f);             \
+        assert (msg != NULL);                                   \
+        msg = strchr(read_buf, ']');                            \
+        assert(msg != NULL);                                    \
+        assert(strlen(msg) > 2);                                \
+        msg = msg + 2; /* advance past [time.stamp] */          \
+    } while (0)
 
     /* boring test message */
     LogMessageVerbSigSafe(X_ERROR, -1, "test message\n");
-- 
1.9.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to