diff options
-rw-r--r-- | ldap/servers/plugins/retrocl/retrocl_trim.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ldap/servers/plugins/retrocl/retrocl_trim.c b/ldap/servers/plugins/retrocl/retrocl_trim.c index e16049d8..7e977369 100644 --- a/ldap/servers/plugins/retrocl/retrocl_trim.c +++ b/ldap/servers/plugins/retrocl/retrocl_trim.c @@ -441,12 +441,16 @@ age_str2time (const char *age) } maxage = slapi_ch_strdup ( age ); + if (!maxage) { + slapi_log_error( SLAPI_LOG_PLUGIN, "retrocl", + "age_str2time: Out of memory\n" ); + ageval = -1; + goto done; + } + unit = maxage[ strlen( maxage ) - 1 ]; maxage[ strlen( maxage ) - 1 ] = '\0'; ageval = strntoul( maxage, strlen( maxage ), 10 ); - if ( maxage) { - slapi_ch_free ( (void **) &maxage ); - } switch ( unit ) { case 's': break; @@ -468,7 +472,10 @@ age_str2time (const char *age) "for maxiumum changelog age\n", unit ); ageval = -1; } - +done: + if ( maxage) { + slapi_ch_free ( (void **) &maxage ); + } return ageval; } |