From 31ca7affbc02472a87f46bc549db636c4dd202da Mon Sep 17 00:00:00 2001 From: suter Date: Wed, 13 Nov 2013 12:47:31 +0100 Subject: [PATCH] fixing file remane. psize is freed by dict_remove, can't be used in dict_set afterwards (cherry picked from commit 8a5097daa6d84233438a73f34f02c8b086a8ff21) --- src/surf/storage.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/surf/storage.c b/src/surf/storage.c index 447c3c6ffa..a5a59ae62a 100644 --- a/src/surf/storage.c +++ b/src/surf/storage.c @@ -230,11 +230,13 @@ static void storage_file_rename(void *storage, const char *src, const char *dest { void *storage_resource = surf_storage_resource_priv(storage); - sg_storage_size_t *psize; + sg_storage_size_t *psize, *new_psize; psize = (sg_storage_size_t*) xbt_dict_get_or_null(((storage_t)storage_resource)->content,src); + new_psize = xbt_new(sg_storage_size_t, 1); + *new_psize = *psize; if (psize){// src file exists xbt_dict_remove(((storage_t)storage_resource)->content, src); - xbt_dict_set(((storage_t)storage_resource)->content, dest, psize,NULL); + xbt_dict_set(((storage_t)storage_resource)->content, dest, new_psize,NULL); XBT_DEBUG("Change file name from %s to %s, size '%" PRIu64 "'",src, dest, *psize); } else -- 2.20.1