laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35471?usp=email )
Change subject: tests/utils: do not test strbuf_example2() with buf=NULL ......................................................................
tests/utils: do not test strbuf_example2() with buf=NULL
The following can be seen when building with CC=clang:
utils/utils_test.c:1239:2: runtime error: applying non-zero offset 99 to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior utils/utils_test.c:1239:2 in utils/utils_test.c:1241:3: runtime error: applying non-zero offset 99 to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior utils/utils_test.c:1241:3 in utils/utils_test.c:1242:2: runtime error: applying non-zero offset 99 to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior utils/utils_test.c:1242:2 in 44. testsuite.at:274: 44. utils (testsuite.at:274): FAILED (testsuite.at:278)
This makes utils_test fail due to unexpected UBSan's output.
Even though passing NULL to the strbuf API is relatively safe, it makes no sense and the API user should ensure that this never happens. And so we should not be testing this case.
Change-Id: Icd2323e93ec64afc1822d48e5e1d090083edf539 --- M tests/utils/utils_test.c M tests/utils/utils_test.ok 2 files changed, 25 insertions(+), 4 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved
diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 26c94dc..9ab12a1 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -1280,9 +1280,6 @@ snprintf(buf, sizeof(buf), "0x2b 0x2b 0x2b..."); printf("4: (need %d chars, had size=0) %s\n", rc, buf);
- rc = strbuf_example2(NULL, 99); - printf("5: (need %d chars, had NULL buffer)\n", rc); - printf("\ncascade:\n"); rc = strbuf_cascade(buf, sizeof(buf)); printf("(need %d chars)\n%s\n", rc, buf); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index c0c9560..8a66ba8 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -458,7 +458,6 @@ 2: (need 42 chars, had size=42) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off 3: (need 42 chars, had size=42+1) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! 4: (need 42 chars, had size=0) 0x2b 0x2b 0x2b... -5: (need 42 chars, had NULL buffer)
cascade: (need 134 chars)