Message ID | 1465466420-20352-1-git-send-email-andrew.cooper3@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 09.06.16 at 12:00, <andrew.cooper3@citrix.com> wrote: > In practice this is an unused codepath, as every caller of number() passes an > explicit base of 8, 10 or 16. For all other uses, number() returns a > pointer > between the str and end parameters, as do the other similar helper > functions. > > However, the fact that there is a NULL return path causes Coverity to check > whether the caller makes NULL checks on the return value, and complain. > > Change the conditional return into an ASSERT(). > > No functional change, but this removes 21 instances of NULL_RETURN in > Coverity. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com> But should really have Cc-ed the other REST maintainers. Jan
diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index b050ea3..f92fb67 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -153,11 +153,11 @@ static char *number( static const char large_digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int i; + ASSERT(base >= 2 && base <= 36); + digits = (type & LARGE) ? large_digits : small_digits; if (type & LEFT) type &= ~ZEROPAD; - if (base < 2 || base > 36) - return NULL; c = (type & ZEROPAD) ? '0' : ' '; sign = 0; if (type & SIGN) {
In practice this is an unused codepath, as every caller of number() passes an explicit base of 8, 10 or 16. For all other uses, number() returns a pointer between the str and end parameters, as do the other similar helper functions. However, the fact that there is a NULL return path causes Coverity to check whether the caller makes NULL checks on the return value, and complain. Change the conditional return into an ASSERT(). No functional change, but this removes 21 instances of NULL_RETURN in Coverity. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Jan Beulich <JBeulich@suse.com> --- xen/common/vsprintf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)