Skip to contentSkip to conversation

ppp_generic.c warning fix

PATCH New Nero 1 participant 1 message Sep 17, 2002 Network drivers

lore
Share & tools
lore

Nero

author
#0 lore raw

PATCH 1/1 ppp_generic.c warning fix

Hi, I had been getting this warning for a while, decided to do something about it :-)

The warning:

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -nostdinc -I /usr/lib/gcc-lib/i386-linux/3.2.1/include -DKBUILD_BASENAME=ppp_generic
-DEXPORT_SYMTAB -c ppp_generic.c
ppp_generic.c: In function `ppp_read':
ppp_generic.c:381: warning: `ret' might be used uninitialized in this function

I realise 2.5 has this fixed, but for some reason they initialize it as count, but shortly after that it gets set back to 0...

[attached patch as well, incase the inline one got fubared. I don't trust paste]
------------------------------------------------------------------------

diff -urN linux-2.4.19-old/drivers/net/ppp_generic.c linux-2.4.19-new/drivers/net/ppp_generic.c
--- linux-2.4.19-old/drivers/net/ppp_generic.c 2002-07-20
20:52:50.000000000 +1000
+++ linux-2.4.19-new/drivers/net/ppp_generic.c 2002-09-17
18:12:19.000000000 +1000
@@ -378,18 +378,20 @@
{
struct ppp_file *pf = file->private_data; DECLARE_WAITQUEUE(wait, current);
- ssize_t ret;
+ ssize_t ret = 0;
struct sk_buff *skb = 0;

- if (pf == 0)
- return -ENXIO;
+ if (pf == 0) {
+ ret = -ENXIO;
+ goto out;
+ }
+
add_wait_queue(&pf->rwait, &wait); for (;;) {
set_current_state(TASK_INTERRUPTIBLE); skb = skb_dequeue(&pf->rq); if (skb)
break;
- ret = 0;
if (pf->dead)
break;
ret = -EAGAIN;

drivers/net/ppp_generic.c +6 -4
diff -urN linux-2.4.19-old/drivers/net/ppp_generic.c linux-2.4.19-new/drivers/net/ppp_generic.c
@@ -378,18 +378,20 @@
 {
 	struct ppp_file *pf = file->private_data;
 	DECLARE_WAITQUEUE(wait, current);
-	ssize_t ret;
+	ssize_t ret = 0;
 	struct sk_buff *skb = 0;
 
-	if (pf == 0)
-		return -ENXIO;
+	if (pf == 0) {
+		ret = -ENXIO;
+		goto out;
+	}
+	
 	add_wait_queue(&pf->rwait, &wait);
 	for (;;) {
 		set_current_state(TASK_INTERRUPTIBLE);
 		skb = skb_dequeue(&pf->rq);
 		if (skb)
 			break;
-		ret = 0;
 		if (pf->dead)
 			break;
 		ret = -EAGAIN;