|
@@ -255,6 +255,7 @@ static long seccomp_attach_filter(struct sock_fprog *fprog)
|
|
|
goto free_prog;
|
|
|
|
|
|
/* Allocate a new seccomp_filter */
|
|
|
+ ret = -ENOMEM;
|
|
|
filter = kzalloc(sizeof(struct seccomp_filter) +
|
|
|
sizeof(struct sock_filter_int) * new_len,
|
|
|
GFP_KERNEL|__GFP_NOWARN);
|
|
@@ -264,6 +265,7 @@ static long seccomp_attach_filter(struct sock_fprog *fprog)
|
|
|
ret = sk_convert_filter(fp, fprog->len, filter->insnsi, &new_len);
|
|
|
if (ret)
|
|
|
goto free_filter;
|
|
|
+ kfree(fp);
|
|
|
|
|
|
atomic_set(&filter->usage, 1);
|
|
|
filter->len = new_len;
|