]> git.ipfire.org Git - pakfire.git/commitdiff
util: Check input for pakfire_string_startswith
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 5 Oct 2021 14:11:54 +0000 (14:11 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 5 Oct 2021 14:11:54 +0000 (14:11 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/util.c
tests/libpakfire/util.c

index 8051d4c0fea02452198f9d9a0dcb50f024483569..f9d89d07e489cf6918595c6def78c9e816d65cc3 100644 (file)
@@ -157,6 +157,12 @@ void pakfire_parse_deps(struct pakfire* pakfire, struct pakfire_package* pkg,
 }
 
 int pakfire_string_startswith(const char* s, const char* prefix) {
+       // Validate input
+       if (!s || !prefix) {
+               errno = EINVAL;
+               return 1;
+       }
+
        return !strncmp(s, prefix, strlen(prefix));
 }
 
index 7dc5ffd0d1c25c8de03acbedcf399f8e15985e56..c7fd4b3757ce567565e962d24bb3bba000ce043c 100644 (file)
@@ -57,6 +57,11 @@ static int test_string_startswith(const struct test* t) {
        ASSERT_TRUE(pakfire_string_startswith("ABC", "A"));
        ASSERT_FALSE(pakfire_string_startswith("ABC", "B"));
 
+       // Check for invalid inputs
+       ASSERT_ERRNO(pakfire_string_startswith("ABC", NULL), EINVAL);
+       ASSERT_ERRNO(pakfire_string_startswith(NULL, "ABC"), EINVAL);
+       ASSERT_ERRNO(pakfire_string_startswith(NULL, NULL), EINVAL);
+
        return EXIT_SUCCESS;
 
 FAIL: