Explorar o código

fs/cifs/cifs_dfs_ref.c: fix potential memory leakage

When it goes to error through line 144, the memory allocated to *devname is
not freed, and the caller doesn't free it either in line 250. So we free the
memroy of *devname in function cifs_compose_mount_options() when it goes to
error.

Signed-off-by: Cong Ding <dinggnu@gmail.com>
CC: stable <stable@kernel.org>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Cong Ding %!s(int64=13) %!d(string=hai) anos
pai
achega
10b8c7dff5
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      fs/cifs/cifs_dfs_ref.c

+ 2 - 0
fs/cifs/cifs_dfs_ref.c

@@ -226,6 +226,8 @@ char *cifs_compose_mount_options(const char *sb_mountdata,
 compose_mount_options_err:
 compose_mount_options_err:
 	kfree(mountdata);
 	kfree(mountdata);
 	mountdata = ERR_PTR(rc);
 	mountdata = ERR_PTR(rc);
+	kfree(*devname);
+	*devname = NULL;
 	goto compose_mount_options_out;
 	goto compose_mount_options_out;
 }
 }