]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo1.c
* Arreglo leer_raw de tipo 1
[z.facultad/75.06/emufs.git] / emufs / tipo1.c
index 596f69abb375babcebb2214fdc75feeef79bb364..76ded8bccd94a61b68df89b035a8e53565c8a505 100644 (file)
@@ -226,7 +226,7 @@ void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id, EMUFS_REG_SIZE
 
                        cant_bloques = curr_reg_header.size / block_space + 1;
                        *size = cant_bloques*efs->tam_bloque;
-                       registro = chunk_ptr = (char*) malloc(*size - (cant_bloques-1)*sizeof(EMUFS_TIPO1_REG_HEADER));
+                       registro = chunk_ptr = (char*) malloc(*size - (cant_bloques-1)*sizeof(EMUFS_TIPO1_REG_HEADER) + (cant_bloques-1)*2);
                        if (registro == NULL) {
                                /* TODO Manejo de errores */
                                free(block);
@@ -243,8 +243,10 @@ void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id, EMUFS_REG_SIZE
                                err = 0;
                                block = (char*)emufs_tipo1_leer_bloque(efs, block_id+i, &err);
                                /* Solo grabo el header del primer pedazo! */
-                               memcpy(registro, block+sizeof(EMUFS_TIPO1_REG_HEADER), efs->tam_bloque);
-                               chunk_ptr += efs->tam_bloque;
+                               memcpy(chunk_ptr, "<>", 2);
+                               chunk_ptr += 2;
+                               memcpy(chunk_ptr, block+sizeof(EMUFS_TIPO1_REG_HEADER), efs->tam_bloque-sizeof(EMUFS_TIPO1_REG_HEADER));
+                               chunk_ptr += efs->tam_bloque-sizeof(EMUFS_TIPO1_REG_HEADER);
                                free(block);
                        }
                        /* Todo listo! */