From: Michael Tremer Date: Tue, 5 Oct 2021 14:11:54 +0000 (+0000) Subject: util: Check input for pakfire_string_startswith X-Git-Tag: 0.9.28~902 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d967ba61c728fa3903c0c78fe9c131f79a0fa5f2;p=pakfire.git util: Check input for pakfire_string_startswith Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index 8051d4c0f..f9d89d07e 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -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)); } diff --git a/tests/libpakfire/util.c b/tests/libpakfire/util.c index 7dc5ffd0d..c7fd4b375 100644 --- a/tests/libpakfire/util.c +++ b/tests/libpakfire/util.c @@ -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: