]> git.scottworley.com Git - tl-append/commitdiff
appease clang-tidy: Careful of size_t→int narrowing conversion
authorScott Worley <scottworley@scottworley.com>
Wed, 13 Sep 2023 18:40:48 +0000 (11:40 -0700)
committerScott Worley <scottworley@scottworley.com>
Wed, 13 Sep 2023 18:40:48 +0000 (11:40 -0700)
Why does fgets take an int instead of a size_t?  :(

tl-append-test.c

index 4d51c38803dce622f6603c658f8461e981845626..08cf8002b24154468e7d06581684c9daa1d97d64 100644 (file)
@@ -3,6 +3,7 @@
 #include <assert.h>
 #include <ctype.h>
 #include <errno.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -89,6 +90,8 @@ static void verify_log_contents(ex_t exps[]) {
     die_err("Error opening log file");
   for (size_t i = 0; !is_end(exps[i]); i++) {
     size_t len = TIMESTAMP_LEN + 1 + strlen(exps[i].message);
+    if (len > INT_MAX - 1)
+      die("message too long");
     char *buf = (char *)malloc(len + 2);
     if (fgets(buf, len + 1, f) == NULL)
       die("Error reading log file");