From: suter Date: Wed, 13 Nov 2013 11:47:31 +0000 (+0100) Subject: fixing file remane. psize is freed by dict_remove, can't be used in X-Git-Tag: v3_11_beta~319 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8a5097daa6d84233438a73f34f02c8b086a8ff21 fixing file remane. psize is freed by dict_remove, can't be used in dict_set afterwards --- 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