]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
strtoim: imporve robustness
authorBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 16 Dec 2021 16:39:16 +0000 (17:39 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 16 Dec 2021 16:39:16 +0000 (17:39 +0100)
src/utils.c
tests/mlmmj.c

index d139253b5310f31d07d05465f49f417729750765..661acb13c54117197accd772a23b32cf5d9f3760 100644 (file)
@@ -34,7 +34,7 @@ strtoim(const char *np, intmax_t minval, intmax_t maxval, const char **errpp)
        intmax_t ret;
 
        *errpp = NULL;
-       if (minval > maxval) {
+       if (minval > maxval || np == NULL) {
                errno = EINVAL;
                *errpp = "invalid";
                return (0);
index 63c7f90059a26292ef4c9614ec1979ae2bba86c3..78ba9d924619a30e44d7dbd27ba10566f7f29170 100644 (file)
@@ -300,6 +300,10 @@ ATF_TC_BODY(mybasename, tc)
 ATF_TC_BODY(strtoim, tc)
 {
        const char *errp;
+
+       ATF_REQUIRE_EQ(strtoim(NULL, 0, 10, &errp), 0);
+       ATF_REQUIRE(errp != NULL);
+       ATF_REQUIRE_STREQ(errp, "invalid");
        ATF_REQUIRE_EQ(strtoim("10", 0, 10, &errp), 10);
        ATF_CHECK(errp == NULL);
        ATF_REQUIRE_EQ(strtoim("10", 0, 9, &errp), 0);