All of lore.kernel.org
 help / color / mirror / Atom feed
* [2/2] osf: fixed /proc reading bug
@ 2004-08-21 21:03 Evgeniy Polyakov
  2004-08-21 22:30 ` Patrick McHardy
  0 siblings, 1 reply; 11+ messages in thread
From: Evgeniy Polyakov @ 2004-08-21 21:03 UTC (permalink / raw)
  To: Harald Welte; +Cc: netfilter-devel

[-- Attachment #1: Type: text/plain, Size: 193 bytes --]

Fixed buffer overflow when reading rules from /proc file.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>

	Evgeniy Polyakov ( s0mbre )

Only failure makes us experts. -- Theo de Raadt


[-- Attachment #2: ipt_osf.diff.1 --]
[-- Type: application/octet-stream, Size: 1217 bytes --]

--- netfilter_cvs/patch-o-matic-ng/osf/linux-2.6/net/ipv4/netfilter/ipt_osf.c	2004-08-22 00:54:44.000000000 +0400
+++ netfilter_cvs/patch-o-matic-ng/osf/linux-2.6/net/ipv4/netfilter/ipt_osf.c	2004-08-20 22:36:24.000000000 +0400
@@ -182,7 +185,6 @@
 		optsize = tcp->doff*4 - sizeof(struct tcphdr);
 	}
 
-	
 	/* Actually we can create hash/table of all genres and search
 	 * only in appropriate part, but here is initial variant,
 	 * so will use slow path.
@@ -601,9 +603,10 @@
 {
 	struct list_head *ent;
 	struct osf_finger *f = NULL;
-	int i;
+	int i, __count, err;
 	
 	*eof = 1;
+	__count = count;
 	count = 0;
 
 	read_lock_bh(&osf_lock);
@@ -613,10 +616,13 @@
 
 		log("%s [%s]", f->genre, f->details);
 		
-		count += sprintf(buf+count, "%s - %s[%s] : %s", 
+		err = snprintf(buf+count, __count-count, "%s - %s[%s] : %s", 
 					f->genre, f->version,
 					f->subtype, f->details);
-		
+		if (err < 0)
+			break;
+		else
+			count += err;
 		if (f->opt_num)
 		{
 			loga(" OPT: ");
@@ -630,7 +636,11 @@
 			}
 		}
 		loga("\n");
-		count += sprintf(buf+count, "\n");
+		err = snprintf(buf+count, __count-count, "\n");
+		if (err < 0)
+			break;
+		else
+			count += err;
 	}
 	read_unlock_bh(&osf_lock);
 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2004-08-23 18:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-21 21:03 [2/2] osf: fixed /proc reading bug Evgeniy Polyakov
2004-08-21 22:30 ` Patrick McHardy
2004-08-21 23:48   ` Henrik Nordstrom
2004-08-22  0:15     ` Patrick McHardy
2004-08-23  8:57       ` Evgeniy Polyakov
2004-08-23  9:55         ` Patrick McHardy
2004-08-23 10:30           ` Evgeniy Polyakov
2004-08-23 10:38             ` Henrik Nordstrom
2004-08-23 10:39             ` Evgeniy Polyakov
2004-08-23 11:35               ` Evgeniy Polyakov
2004-08-23 18:33                 ` Patrick McHardy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.