[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openldap-bugs
Subject:    [Issue 9593] New: excessive null check in set_chase()
From:       openldap-its () openldap ! org
Date:       2021-06-24 23:35:12
Message-ID: bug-9593-2 () http ! bugs ! openldap ! org/
[Download RAW message or body]

https://bugs.openldap.org/show_bug.cgi?id=9593

          Issue ID: 9593
           Summary: excessive null check in set_chase()
           Product: OpenLDAP
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: ---
         Component: slapd
          Assignee: bugs@openldap.org
          Reporter: grapvar@gmail.com
  Target Milestone: ---

Looks like slap_set_join( cp, nset, '|', vals ) can't return null, so return
value at line 411 should be treated like one at line 402:

servers/slapd/sets.c:399, set_chase():

    for ( i = 0; !BER_BVISNULL( &set[ i ] ); i++ ) {
        vals = gatherer( cp, &set[ i ], desc );
        if ( vals != NULL ) {
/*402: */   nset = slap_set_join( cp, nset, '|', vals );
        }
    }
    ber_bvarray_free_x( set, cp->set_op->o_tmpmemctx );

    if ( closure ) {
        for ( i = 0; !BER_BVISNULL( &nset[ i ] ); i++ ) {
            vals = gatherer( cp, &nset[ i ], desc );
            if ( vals != NULL ) {
/*411: */       nset = slap_set_join( cp, nset, '|', vals );
                if ( nset == NULL ) {
                    break;
                }
            }
        }
    }

diff --git a/servers/slapd/sets.c b/servers/slapd/sets.c
index fc7b72c8b..17a6ec2c1 100644
--- a/servers/slapd/sets.c
+++ b/servers/slapd/sets.c
@@ -409,9 +409,6 @@ set_chase( SLAP_SET_GATHER gatherer,
             vals = gatherer( cp, &nset[ i ], desc );
             if ( vals != NULL ) {
                 nset = slap_set_join( cp, nset, '|', vals );
-                if ( nset == NULL ) {
-                    break;
-                }


If I'm wrong, return value at line 402 must be checked for null.

-- 
You are receiving this mail because:
You are on the CC list for the issue.=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic