summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ldap/servers/plugins/retrocl/retrocl_trim.c15
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;
}