From d878ee30adc0fe5d7a89ecb9e8d31408e741cdd1 Mon Sep 17 00:00:00 2001 From: szaka Date: Sat, 12 Jul 2008 12:38:56 +0000 Subject: [PATCH] ntfs_bitmap_set_bits_in_run(): cleanup error handling --- libntfs-3g/bitmap.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/libntfs-3g/bitmap.c b/libntfs-3g/bitmap.c index 32363f4d..96f2cb9b 100644 --- a/libntfs-3g/bitmap.c +++ b/libntfs-3g/bitmap.c @@ -117,7 +117,7 @@ static int ntfs_bitmap_set_bits_in_run(ntfs_attr *na, s64 start_bit, { s64 bufsize, br; u8 *buf, *lastbyte_buf; - int bit, firstbyte, lastbyte, lastbyte_pos, tmp, err; + int bit, firstbyte, lastbyte, lastbyte_pos, tmp, ret = -1; if (!na || start_bit < 0 || count < 0) { errno = EINVAL; @@ -176,7 +176,7 @@ static int ntfs_bitmap_set_bits_in_run(ntfs_attr *na, s64 start_bit, // FIXME: Eeek! BUG! ntfs_log_error("Lastbyte is zero. Leaving " "inconsistent metadata.\n"); - err = EIO; + errno = EIO; goto free_err_out; } /* and it is in the currently loaded bitmap window... */ @@ -191,7 +191,7 @@ static int ntfs_bitmap_set_bits_in_run(ntfs_attr *na, s64 start_bit, ntfs_log_perror("Reading of last byte " "failed (%lld). Leaving inconsistent " "metadata", (long long)br); - err = EIO; + errno = EIO; goto free_err_out; } /* and set/clear the appropriate bits in it. */ @@ -216,7 +216,7 @@ static int ntfs_bitmap_set_bits_in_run(ntfs_attr *na, s64 start_bit, ntfs_log_perror("Failed to write buffer to bitmap " "(%lld != %lld). Leaving inconsistent metadata", (long long)br, (long long)bufsize); - err = EIO; + errno = EIO; goto free_err_out; } @@ -240,19 +240,16 @@ static int ntfs_bitmap_set_bits_in_run(ntfs_attr *na, s64 start_bit, ntfs_log_error("Last buffer but count is not zero " "(%lld). Leaving inconsistent metadata.\n", (long long)count); - err = EIO; + errno = EIO; goto free_err_out; } } while (count > 0); - - /* Done! */ - free(buf); - return 0; - + + ret = 0; + free_err_out: free(buf); - errno = err; - return -1; + return ret; } /**