--- libraries/liblber/decode.c 2002/01/03 02:30:55 1.73 +++ libraries/liblber/decode.c 2002/01/03 02:44:38 1.74 @@ -1,5 +1,5 @@ /* decode.c - ber input decoding routines */ -/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.72 2002/01/03 02:11:14 hyc Exp $ */ +/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.73 2002/01/03 02:30:55 hyc Exp $ */ /* * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file @@ -322,20 +322,23 @@ ber_get_stringbvr( bgbvr *b, int n ) switch (b->choice) { case ChArray: *b->res.c = LBER_MALLOC( (n+1) * sizeof( char * )); + if ( *b->res.c == NULL ) + return LBER_DEFAULT; (*b->res.c)[n] = NULL; break; case BvArray: *b->res.ba = LBER_MALLOC( (n+1) * sizeof( struct berval )); + if ( *b->res.ba == NULL ) + return LBER_DEFAULT; (*b->res.ba)[n].bv_val = NULL; break; case BvVec: *b->res.bv = LBER_MALLOC( (n+1) * sizeof( struct berval *)); + if ( *b->res.bv == NULL ) + return LBER_DEFAULT; (*b->res.bv)[n] = NULL; break; } - /* Did the malloc succeed? */ - if ( *b->res.c == NULL ) - return LBER_DEFAULT; return 0; }