Subject: [PATCH]: fix memory leak in ppp filter ioctl error path
From: Patrick McHardy <[email-masked]>
To: Paul Mackerras <[email-masked]>
Cc: Linux Kernel Mailing List <[email-masked]>
Date: Sun, 01 Jun 2003 04:09:44 +0200

This patch fixes a memory leak in ppp_ioctl,
when copy_from_user fails 'code' isn't freed.
Patch applies to both 2.4 and 2.5.

Best regards,
Patrick

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1248  -> 1.1249 
#	drivers/net/ppp_generic.c	1.19    -> 1.20   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/01	[email-masked]	1.1249
# [PPP] fix memory leak in ioctl error path
# --------------------------------------------
#
diff -Nru a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
--- a/drivers/net/ppp_generic.c	Sun Jun  1 03:58:58 2003
+++ b/drivers/net/ppp_generic.c	Sun Jun  1 03:58:58 2003
@@ -666,8 +666,10 @@
 			if (code == 0)
 				break;
 			err = -EFAULT;
-			if (copy_from_user(code, uprog.filter, len))
+			if (copy_from_user(code, uprog.filter, len)) {
+				kfree(code);
 				break;
+			}
 			err = sk_chk_filter(code, uprog.len);
 			if (err) {
 				kfree(code);