@@ -95,6 +95,8 @@ cache_t *LRB_init(const common_cache_params_t ccache_params,
9595 LRB_params_t *params = my_malloc (LRB_params_t);
9696 cache->eviction_params = params;
9797
98+ params->objective = nullptr ;
99+
98100 LRB_parse_params (cache, DEFAULT_PARAMS);
99101 if (cache_specific_params != NULL ) {
100102 LRB_parse_params (cache, cache_specific_params);
@@ -311,7 +313,7 @@ static const char *LRB_current_params(cache_t *cache, LRB_params_t *params) {
311313 static __thread char params_str[128 ];
312314 int n = snprintf (params_str, 128 , " objective=%s" , params->objective );
313315
314- snprintf (cache-> cache_name + n, 128 - n, " \n " );
316+ snprintf (params_str + n, 128 - n, " \n " );
315317
316318 return params_str;
317319}
@@ -328,6 +330,13 @@ static void LRB_parse_params(cache_t *cache,
328330 char *key = strsep ((char **)¶ms_str, " =" );
329331 char *value = strsep ((char **)¶ms_str, " ," );
330332
333+ if (key == NULL || value == NULL ) {
334+ ERROR (" invalid parameter format in %s: %s\n " , cache->cache_name ,
335+ cache_specific_params);
336+ free (original_params_str);
337+ exit (1 );
338+ }
339+
331340 // skip the white space
332341 while (params_str != NULL && *params_str == ' ' ) {
333342 params_str++;
0 commit comments