]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/oidm.c
tolerate that config_get_vals() returns success with no values (ITS#4341)
[openldap] / servers / slapd / oidm.c
index 0e0f6210a34363626f69820fa36f2479ec786c9d..0bc6f53102d32896b7c1c0101d8d258b1fa0a7aa 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2006 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -119,9 +119,9 @@ usage:      fprintf( stderr, "\tObjectIdentifier <name> <oid>\n");
                return 1;
        }
 
-       om = (OidMacro *) SLAP_MALLOC( sizeof(OidMacro) );
+       om = (OidMacro *) SLAP_CALLOC( sizeof(OidMacro), 1 );
        if( om == NULL ) {
-               Debug( LDAP_DEBUG_ANY, "parse_oidm: SLAP_MALLOC failed", 0, 0, 0 );
+               Debug( LDAP_DEBUG_ANY, "parse_oidm: SLAP_CALLOC failed", 0, 0, 0 );
                return 1;
        }
 
@@ -156,7 +156,7 @@ void oidm_unparse( BerVarray *res, OidMacro *start, OidMacro *end, int sys )
 {
        OidMacro *om;
        int i, j, num;
-       struct berval bv, *bva = NULL, idx;
+       struct berval *bva = NULL, idx;
        char ibuf[32], *ptr;
 
        if ( !start )
@@ -184,7 +184,7 @@ void oidm_unparse( BerVarray *res, OidMacro *start, OidMacro *end, int sys )
                if ( sys && !(om->som_flags & SLAP_OM_HARDCODE)) continue;
                for ( j=0; !BER_BVISNULL(&om->som_names[j]); i++,j++ ) {
                        if ( !sys ) {
-                               idx.bv_len = sprintf(idx.bv_val, "{%02d}", i );
+                               idx.bv_len = sprintf(idx.bv_val, "{%d}", i );
                        }
                        bva[i].bv_len = idx.bv_len + om->som_names[j].bv_len +
                                om->som_subs[j].bv_len + 1;