|
@@ -1106,10 +1106,8 @@ static int selinux_parse_opts_str(char *options,
|
|
|
|
|
|
opts->mnt_opts_flags = kcalloc(NUM_SEL_MNT_OPTS, sizeof(int),
|
|
opts->mnt_opts_flags = kcalloc(NUM_SEL_MNT_OPTS, sizeof(int),
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
- if (!opts->mnt_opts_flags) {
|
|
|
|
- kfree(opts->mnt_opts);
|
|
|
|
|
|
+ if (!opts->mnt_opts_flags)
|
|
goto out_err;
|
|
goto out_err;
|
|
- }
|
|
|
|
|
|
|
|
if (fscontext) {
|
|
if (fscontext) {
|
|
opts->mnt_opts[num_mnt_opts] = fscontext;
|
|
opts->mnt_opts[num_mnt_opts] = fscontext;
|
|
@@ -1132,6 +1130,7 @@ static int selinux_parse_opts_str(char *options,
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
out_err:
|
|
out_err:
|
|
|
|
+ security_free_mnt_opts(opts);
|
|
kfree(context);
|
|
kfree(context);
|
|
kfree(defcontext);
|
|
kfree(defcontext);
|
|
kfree(fscontext);
|
|
kfree(fscontext);
|