From 5c4392761a0f05f3d2dec5cae73e22a68dee0c44 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 19 Apr 2004 07:16:49 +0000 Subject: [PATCH] * agrego mas fclose faltantes --- emufs/emufs.c | 4 ++++ emufs/idx.c | 1 - emufs/tipo1.c | 2 ++ emufs/tipo2.c | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/emufs/emufs.c b/emufs/emufs.c index 734c936..d243861 100644 --- a/emufs/emufs.c +++ b/emufs/emufs.c @@ -119,6 +119,7 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b /* Crea archivo de índice. */ if (emufs_idx_crear(efs)) { /* TODO ERROR */ + fclose(fp); free(efs->nombre); free(efs); return NULL; @@ -127,6 +128,7 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b /* Crea archivo de control de espacio libre. */ if (emufs_fsc_crear(efs)) { /* TODO ERROR */ + fclose(fp); free(efs->nombre); free(efs); return NULL; @@ -135,6 +137,7 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b /* Crea archivo de identificadores borrados (recuperables). */ if (emufs_did_crear(efs)) { /* TODO ERROR */ + fclose(fp); free(efs->nombre); free(efs); return NULL; @@ -148,6 +151,7 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b if ((err = emufs_tipo1_inicializar(efs))) { /* TODO ERROR */ PERR("No se pudo inicializar el EMUFS de tipo1"); + fclose(fp); free(efs->nombre); free(efs); return NULL; diff --git a/emufs/idx.c b/emufs/idx.c index 06cb824..6e33fda 100644 --- a/emufs/idx.c +++ b/emufs/idx.c @@ -52,7 +52,6 @@ FILE* emufs_idx_abrir(EMUFS* efs, const char* mode) filename = (char*) malloc(sizeof(char) * (strlen(efs->nombre) + strlen(EMUFS_IDX_EXT) + 1)); if (filename == NULL) { - /* TODO Manejo de errores */ return NULL; } strcpy(filename, efs->nombre); diff --git a/emufs/tipo1.c b/emufs/tipo1.c index a8b5102..e703326 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -240,10 +240,12 @@ void* emufs_tipo1_leer_bloque(EMUFS* efs, EMUFS_BLOCK_ID block_id, int* err) if (block == NULL) { PERR("No hay memoria"); *err = EMUFS_ERROR_OUT_OF_MEMORY; + fclose(file); return NULL; } if (fread(block, efs->tam_bloque, 1, file) != 1) { free(block); + fclose(file); PERR("Error al leer bloque"); *err = EMUFS_ERROR_FILE_READ; return NULL; diff --git a/emufs/tipo2.c b/emufs/tipo2.c index 1858c75..b2724e9 100644 --- a/emufs/tipo2.c +++ b/emufs/tipo2.c @@ -318,6 +318,7 @@ void emufs_tipo2_compactar(EMUFS *efs) /* Obtengo la cantidad de gaps */ if ( (fscfile = fopen(name_ffsc,"rb")) == NULL){ PERR("No se pudo abrir el archivo"); + fclose(datfile); return; } fseek(fscfile,0,SEEK_END); -- 2.43.0