From: Bobi Jam Date: Sat, 24 Feb 2018 05:17:17 +0000 (+0800) Subject: LU-10657 utils: fd leak in mirror_split() X-Git-Tag: 2.10.59~54 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=c593dd0b3c758f58a0845e850a7b986e00c80af2;p=fs%2Flustre-release.git LU-10657 utils: fd leak in mirror_split() fd could be leaked in some error handling path for mirror_split(). Signed-off-by: Bobi Jam Change-Id: I54b06191bd337ca7a9e6b58bdc4ab8197f29ed22 Reviewed-on: https://review.whamcloud.com/31410 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Fan Yong Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin --- diff --git a/lustre/utils/lfs.c b/lustre/utils/lfs.c index fbddb03..d0ba643 100644 --- a/lustre/utils/lfs.c +++ b/lustre/utils/lfs.c @@ -1742,7 +1742,7 @@ static int mirror_split(const char *fname, __u16 mirror_id, fprintf(stderr, "error %s: file name of '%s' too long\n", progname, fname); rc = -ERANGE; - goto free_layout; + goto close_fd; } strncpy(parent, fname, sizeof(parent)); ptr = strrchr(parent, '/'); @@ -1751,7 +1751,7 @@ static int mirror_split(const char *fname, __u16 mirror_id, fprintf(stderr, "error %s: getcwd failed: %s\n", progname, strerror(errno)); rc = -errno; - goto free_layout; + goto close_fd; } } else { if (ptr == parent) @@ -1763,7 +1763,7 @@ static int mirror_split(const char *fname, __u16 mirror_id, if (rc < 0) { fprintf(stderr, "%s: cannot get MDT index of '%s'\n", progname, fname); - goto free_layout; + goto close_fd; } if (victim_file == NULL) {