I had this issue with vanilla 2.6.32.27 patched with the 2.6.32.27 grsec patch (2-3 days ago). On Thu, Jan 13, 2011 at 14:38, "Tóth Attila" wrote: > Compiling the recent hardened-sources results in the following error > message, when irda is enabled: > > CC net/irda/af_irda.o > net/irda/af_irda.c: In function ‘__irda_getsockopt’: > net/irda/af_irda.c:2289:4: error: label ‘out’ used but not defined > > The changes causing it introduced recently. > > --- linux-2.6.36-hardened-r7/net/irda/af_irda.c 2010-10-20 > 22:30:22.000000000 +0200 > +++ linux-2.6.36-hardened-r8/net/irda/af_irda.c 2011-01-13 > 13:08:57.000000000 +0100 > @@ -2278,6 +2278,17 @@ > > switch (optname) { > case IRLMP_ENUMDEVICES: > + > + > + /* Offset to first device entry */ > + offset = sizeof(struct irda_device_list) - > + sizeof(struct irda_device_info); > + > + if (len < offset) { > + err = -EINVAL; > + goto out; > + } > + > /* Ask lmp for the current discovery log */ > discoveries = irlmp_get_discoveries(&list.len, > self->mask.word, > self->nslots); > @@ -2287,15 +2298,9 @@ > err = 0; > > /* Write total list length back to client */ > - if (copy_to_user(optval, &list, > - sizeof(struct irda_device_list) - > - sizeof(struct irda_device_info))) > + if (copy_to_user(optval, &list, offset)) > err = -EFAULT; > > - /* Offset to first device entry */ > - offset = sizeof(struct irda_device_list) - > - sizeof(struct irda_device_info); > - > /* Copy the list itself - watch for overflow */ > if(list.len > 2048) > { > > What are your suggestions? > > Thx: > Dw. > -- > dr Tóth Attila, Radiológus, 06-20-825-8057 > Attila Toth MD, Radiologist, +36-20-825-8057 > > >