On Sat, 20 Dec 2025 at 00:12, Richard Fitzgerald <[email protected]> wrote: > > Replace the NULL checks with IS_ERR_OR_NULL() in > KUNIT_BINARY_STR_ASSERTION() to prevent the strcmp() faulting if a > passed pointer is an ERR_PTR. > > Commit 7ece381aa72d4 ("kunit: Protect string comparisons against NULL") > added the checks for NULL on both pointers so that asserts would fail, > instead of faulting, if either pointer is NULL. But either pointer > could hold an ERR_PTR value. > > This assumes that the assertion is expecting both strings to be valid, > and is asserting the equality of their _content_. > > Signed-off-by: Richard Fitzgerald <[email protected]> > ---
This looks good to me, though I do acknowledge the general hate for IS_ERR_OR_NULL()[1], and particularly how it can annoy things like smatch. For an assertion, though, where we're really asserting that both are valid strings which are equal, I think this is okay. Reviewed-by: David Gow <[email protected]> Cheers, -- David [1]: https://staticthinking.wordpress.com/2022/08/01/mixing-error-pointers-and-null/ > include/kunit/test.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/kunit/test.h b/include/kunit/test.h > index 5ec5182b5e57..9cd1594ab697 100644 > --- a/include/kunit/test.h > +++ b/include/kunit/test.h > @@ -906,7 +906,8 @@ do { > \ > }; > \ > > \ > _KUNIT_SAVE_LOC(test); > \ > - if (likely((__left) && (__right) && (strcmp(__left, __right) op 0))) > \ > + if (likely(!IS_ERR_OR_NULL(__left) && !IS_ERR_OR_NULL(__right) && > \ > + (strcmp(__left, __right) op 0))) > \ > break; > \ > > \ > > \ > -- > 2.47.3 >
smime.p7s
Description: S/MIME Cryptographic Signature

