mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-27 18:19:52 -05:00
Check value is a C string in slapi_value_get_string()
This commit is contained in:
parent
3c598e89fb
commit
cc9101d980
1 changed files with 20 additions and 19 deletions
|
|
@ -49,6 +49,22 @@ struct slapi_condvar {
|
|||
ldap_pvt_thread_mutex_t mutex;
|
||||
};
|
||||
|
||||
#ifdef LDAP_SLAPI
|
||||
static int checkBVString(const struct berval *bv)
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0; i < bv->bv_len; i++ ) {
|
||||
if ( bv->bv_val[i] == '\0' )
|
||||
return 0;
|
||||
}
|
||||
if ( bv->bv_val[i] != '\0' )
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
#endif /* LDAP_SLAPI */
|
||||
|
||||
/*
|
||||
* This function converts an array of pointers to berval objects to
|
||||
* an array of berval objects.
|
||||
|
|
@ -3012,31 +3028,16 @@ int slapi_value_set_int(Slapi_Value *value, int intVal)
|
|||
const char *slapi_value_get_string(const Slapi_Value *value)
|
||||
{
|
||||
#ifdef LDAP_SLAPI
|
||||
if ( value == NULL ) {
|
||||
return NULL;
|
||||
}
|
||||
if ( value == NULL ) return NULL;
|
||||
if ( value->bv_val == NULL ) return NULL;
|
||||
if ( !checkBVString( value ) ) return NULL;
|
||||
|
||||
return value->bv_val;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef LDAP_SLAPI
|
||||
static int checkBVString(const struct berval *bv)
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0; i < bv->bv_len; i++ ) {
|
||||
if ( bv->bv_val[i] == '\0' )
|
||||
return 0;
|
||||
}
|
||||
if ( bv->bv_val[i] != '\0' )
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
#endif /* LDAP_SLAPI */
|
||||
|
||||
int slapi_value_get_int(const Slapi_Value *value)
|
||||
{
|
||||
#ifdef LDAP_SLAPI
|
||||
|
|
|
|||
Loading…
Reference in a new issue