On 11/6/13, 7:50 PM, Wang Shilong wrote: > On 11/07/2013 09:48 AM, Wang Shilong wrote: >> Hi Eric, >> >> On 11/07/2013 07:15 AM, Eric Sandeen wrote: >>> In the "nothing to resume" case we return directly and leak >>> several bits of memory; goto out to free them properly. >>> >>> Resolves-Coverity-CID: 1125934 >>> Resolves-Coverity-CID: 1125935 >>> Resolves-Coverity-CID: 1125936 >>> Signed-off-by: Eric Sandeen <sand...@redhat.com> >>> --- >>> cmds-scrub.c | 3 ++- >>> 1 files changed, 2 insertions(+), 1 deletions(-) >>> >>> diff --git a/cmds-scrub.c b/cmds-scrub.c >>> index 605af45..5f3eade 100644 >>> --- a/cmds-scrub.c >>> +++ b/cmds-scrub.c >>> @@ -1261,7 +1261,8 @@ static int scrub_start(int argc, char **argv, int >>> resume) >>> if (!do_quiet) >>> printf("scrub: nothing to resume for %s, fsid %s\n", >>> path, fsid); >>> - return 2; >>> + err = 2; >>> + goto out; >> Thanks for tracking this problem, but >> i intend to return 2 in such case originally. >> return '!err' will revert to return 1 rather than 2. > see label out: > > if (err) > return 1 >
Ah, whoops. Ok, well we still need to fix the leak. I just expected that setting err & going to out would return err ;) So probably: if (err) return err; will work. I'll send a V2. Thanks for catching it on review! -Eric -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html