From 2cf92bb9a77c066074e817f1a0e6ce3933a95a57 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Mon, 19 Apr 2004 08:05:27 +0000 Subject: [PATCH 1/1] Se pone bien la memoria en cero para la GUI en borrar_registro. --- emufs/tipo1.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/emufs/tipo1.c b/emufs/tipo1.c index d772998..a442e8d 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -381,12 +381,14 @@ int emufs_tipo1_borrar_registro(EMUFS* efs, EMUFS_REG_ID reg_id) /* tamaño máximo ultilizable para datos en un bloque */ EMUFS_BLOCK_SIZE block_space = efs->tam_bloque - sizeof(EMUFS_TIPO1_REG_HEADER); - EMUFS_FREE fs; /* cantidad de espacio libre en el bloque */ + /* cantidad de espacio libre original del ultimo bloque */ + EMUFS_FREE orig_fs; while (1) { + EMUFS_FREE fs; /* cantidad de espacio libre en el bloque */ + orig_fs = emufs_fsc_get_fs(efs, curr_block_id); /* actualizo archivo de espacio libre por bloque */ - fs = emufs_fsc_get_fs(efs, curr_block_id) - + MIN(curr_reg_header.size, block_space) + fs = orig_fs + MIN(curr_reg_header.size, block_space) + sizeof(EMUFS_TIPO1_REG_HEADER); if ((err = emufs_fsc_actualizar(efs, curr_block_id, fs))) { PERR("no se pudo actualizar .fsc"); @@ -436,7 +438,8 @@ int emufs_tipo1_borrar_registro(EMUFS* efs, EMUFS_REG_ID reg_id) memcpy(block + offset, block + offset_reg_end, efs->tam_bloque - offset_reg_end); /* rellena el espacio libre con ceros para la GUI */ - memset(block+efs->tam_bloque-offset_reg_end, 0, offset_reg_end); + memset(block + efs->tam_bloque - offset_reg_end - orig_fs + offset, + 0, offset_reg_end + orig_fs - offset); } } /* guardo el bloque en disco (actualizando espacio libre) */ -- 2.43.0