diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ext2fs/dblist.c | 2 | ||||
-rw-r--r-- | lib/ext2fs/inode.c | 6 | ||||
-rw-r--r-- | lib/ext2fs/inode_io.c | 2 | ||||
-rw-r--r-- | lib/ext2fs/test_io.c | 6 | ||||
-rw-r--r-- | lib/ext2fs/undo_io.c | 4 | ||||
-rw-r--r-- | lib/ext2fs/unix_io.c | 2 |
6 files changed, 11 insertions, 11 deletions
diff --git a/lib/ext2fs/dblist.c b/lib/ext2fs/dblist.c index c0a3dfe4..ead8c7a5 100644 --- a/lib/ext2fs/dblist.c +++ b/lib/ext2fs/dblist.c @@ -73,7 +73,7 @@ static errcode_t make_dblist(ext2_filsys fs, ext2_ino_t size, retval = ext2fs_get_mem(sizeof(struct ext2_struct_dblist), &dblist); if (retval) - return retval; + goto cleanup; memset(dblist, 0, sizeof(struct ext2_struct_dblist)); dblist->magic = EXT2_ET_MAGIC_DBLIST; diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c index 829e0322..7889a9f9 100644 --- a/lib/ext2fs/inode.c +++ b/lib/ext2fs/inode.c @@ -671,8 +671,10 @@ errcode_t ext2fs_write_inode_full(ext2_filsys fs, ext2_ino_t ino, if (length > (int) sizeof(struct ext2_inode_large)) { w_inode = malloc(length); - if (!w_inode) - return ENOMEM; + if (!w_inode) { + retval = ENOMEM; + goto errout; + } } else w_inode = &temp_inode; memset(w_inode, 0, length); diff --git a/lib/ext2fs/inode_io.c b/lib/ext2fs/inode_io.c index b3e7ce51..ced32448 100644 --- a/lib/ext2fs/inode_io.c +++ b/lib/ext2fs/inode_io.c @@ -163,7 +163,7 @@ static errcode_t inode_open(const char *name, int flags, io_channel *channel) return 0; cleanup: - if (io->name) + if (io && io->name) ext2fs_free_mem(&io->name); if (data) ext2fs_free_mem(&data); diff --git a/lib/ext2fs/test_io.c b/lib/ext2fs/test_io.c index 7da1ee63..1a6d6c23 100644 --- a/lib/ext2fs/test_io.c +++ b/lib/ext2fs/test_io.c @@ -190,14 +190,12 @@ static errcode_t test_open(const char *name, int flags, io_channel *channel) return EXT2_ET_BAD_DEVICE_NAME; retval = ext2fs_get_mem(sizeof(struct struct_io_channel), &io); if (retval) - return retval; + goto cleanup; memset(io, 0, sizeof(struct struct_io_channel)); io->magic = EXT2_ET_MAGIC_IO_CHANNEL; retval = ext2fs_get_mem(sizeof(struct test_private_data), &data); - if (retval) { - retval = EXT2_ET_NO_MEMORY; + if (retval) goto cleanup; - } io->manager = test_io_manager; retval = ext2fs_get_mem(strlen(name)+1, &io->name); if (retval) diff --git a/lib/ext2fs/undo_io.c b/lib/ext2fs/undo_io.c index da1cf452..df55abf3 100644 --- a/lib/ext2fs/undo_io.c +++ b/lib/ext2fs/undo_io.c @@ -357,7 +357,7 @@ static errcode_t undo_open(const char *name, int flags, io_channel *channel) return EXT2_ET_BAD_DEVICE_NAME; retval = ext2fs_get_mem(sizeof(struct struct_io_channel), &io); if (retval) - return retval; + goto cleanup; memset(io, 0, sizeof(struct struct_io_channel)); io->magic = EXT2_ET_MAGIC_IO_CHANNEL; retval = ext2fs_get_mem(sizeof(struct undo_private_data), &data); @@ -407,7 +407,7 @@ static errcode_t undo_open(const char *name, int flags, io_channel *channel) return 0; cleanup: - if (data->real) + if (data && data->real) io_channel_close(data->real); if (data) ext2fs_free_mem(&data); diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c index ecddfa6b..7eb32f4d 100644 --- a/lib/ext2fs/unix_io.c +++ b/lib/ext2fs/unix_io.c @@ -453,7 +453,7 @@ static errcode_t unix_open(const char *name, int flags, io_channel *channel) return EXT2_ET_BAD_DEVICE_NAME; retval = ext2fs_get_mem(sizeof(struct struct_io_channel), &io); if (retval) - return retval; + goto cleanup; memset(io, 0, sizeof(struct struct_io_channel)); io->magic = EXT2_ET_MAGIC_IO_CHANNEL; retval = ext2fs_get_mem(sizeof(struct unix_private_data), &data); |