Dan Carpenter schrieb: > On Wed, Oct 06, 2010 at 09:25:44AM +0200, Armin Schindler wrote: >> On Mon, 4 Oct 2010, Dan Carpenter wrote: >>> In diva_mnt_add_xdi_adapter() we do this: >>> strcpy (clients[id].drvName, tmp); >>> strcpy (clients[id].Dbg.drvName, tmp); >>> >>> The "clients[id].drvName" is a 128 character buffer and >>> "clients[id].Dbg.drvName" was originally a 16 character buffer but I've >>> changed it to 128 as well. We don't actually use 128 characters but we >>> do use more than 16. >> I don't see any reason for that change. The driver names here do not use >> more than 16 characters and when filled, the length is checked anyway. >> Please avoid changing the size of that structure. >> > > drivers/isdn/hardware/eicon/debug.c diva_mnt_add_xdi_adapter() > 874 sprintf (tmp, "ADAPTER:%d SN:%u-%d", > 12345678 90123 45 67 > > That's a minimum 17 characters. > > 875 (int)logical, > 876 serial & 0x00ffffff, > 877 (byte)(((serial & 0xff000000) >> 24) + 1)); > 878 } else { > 879 sprintf (tmp, "ADAPTER:%d SN:%u", (int)logical, serial); > 880 } > for that reason i am a fan of kasprintf(). Maybe this a solution here also ? samething like: kasprintf (&buf, "ADAPTER:%d SN:%u-%d",12345678,90123,45,67): ... kstrncpy(tmp,buf,sizeof(buf)); .... free(buf); that would keep overflows away until the changes in the structure are ready. re, wh -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html