]> granicus.if.org Git - graphviz/commitdiff
common late_int: detect and reject int out of range
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 23 Dec 2022 02:55:25 +0000 (18:55 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 24 Dec 2022 18:48:38 +0000 (10:48 -0800)
Squashes a -Wconversion warning.

lib/common/utils.c

index e6d1d479a9506c7fc818c92c72f92d43c0f7581d..f435ad0d344ec639a359dfb1e61574d30857542c 100644 (file)
@@ -15,6 +15,7 @@
 #include <cgraph/tokenize.h>
 #include <common/htmltable.h>
 #include <common/entities.h>
+#include <limits.h>
 #include <math.h>
 #include <gvc/gvc.h>
 #include <cgraph/strcasecmp.h>
@@ -71,12 +72,12 @@ int late_int(void *obj, attrsym_t *attr, int defaultValue, int minimum) {
     if (!p || p[0] == '\0')
         return defaultValue;
     char *endp;
-    int rv = strtol(p, &endp, 10);
-    if (p == endp)
+    long rv = strtol(p, &endp, 10);
+    if (p == endp || rv > INT_MAX)
         return defaultValue; /* invalid int format */
     if (rv < minimum)
         return minimum;
-    else return rv;
+    else return (int)rv;
 }
 
 double late_double(void *obj, attrsym_t *attr, double defaultValue,