s3/winbdind: cppcheck: fix nullPointerArithmetic error
authorNoel Power <noel.power@suse.com>
Wed, 22 May 2019 14:17:48 +0000 (14:17 +0000)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 4 Jun 2019 22:13:07 +0000 (22:13 +0000)
Fixes

source3/winbindd/winbindd_cache.c:4386: error: nullPointerArithmetic: Pointer addition with NULL pointer. <--[cppcheck]
source3/winbindd/winbindd_cache.c:4400: error: nullPointerArithmetic: Pointer addition with NULL pointer. <--[cppcheck]
source3/winbindd/winbindd_cache.c:1569:24: warning: Dereference of null pointer <--[clang]

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/winbindd/winbindd_cache.c

index abdfd11dc531398e98b695cad0ebf22a17d1adb7..394b0c774a9ef2358155088a1984e15b6d715542 100644 (file)
@@ -4383,7 +4383,8 @@ static int pack_tdc_domains( struct winbindd_tdc_domain *domains,
        len = 0;
 
        /* Store the number of array items first */
-       len += tdb_pack( buffer+len, buflen-len, "d", 
+       len += tdb_pack( buffer ? buffer+len : NULL,
+                        buffer ? buflen-len : 0, "d",
                         num_domains );
 
        /* now pack each domain trust record */
@@ -4397,7 +4398,8 @@ static int pack_tdc_domains( struct winbindd_tdc_domain *domains,
                                  domains[i].dns_name ? domains[i].dns_name : "UNKNOWN" ));
                }
 
-               len += tdb_pack( buffer+len, buflen-len, "fffddd",
+               len += tdb_pack( buffer ? buffer+len : NULL,
+                                buffer ? buflen-len : 0, "fffddd",
                                 domains[i].domain_name,
                                 domains[i].dns_name ? domains[i].dns_name : "",
                                 dom_sid_str_buf(&domains[i].sid, &tmp),