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