atom feed12 messages in org.kernel.vger.kernel-janitorsRe: [patch v2] cx231xx: card->driver ...
FromSent OnAttachments
Dan CarpenterMar 19, 2010 4:49 am 
Takashi IwaiMar 22, 2010 7:45 am 
Dan CarpenterMar 22, 2010 8:39 am 
Joe PerchesMar 22, 2010 8:43 am 
Takashi IwaiMar 22, 2010 9:04 am 
Dan CarpenterMar 22, 2010 9:54 am 
Takashi IwaiMar 22, 2010 9:57 am 
walter harmsMar 22, 2010 10:17 am 
Takashi IwaiMar 22, 2010 10:21 am 
walter harmsMar 22, 2010 10:50 am 
Takashi IwaiMar 22, 2010 11:59 pm 
Marcin SlusarzMar 23, 2010 9:43 am 
Subject:Re: [patch v2] cx231xx: card->driver "Conexant cx231xx Audio" too long
From:Marcin Slusarz (marc@gmail.com)
Date:Mar 23, 2010 9:43:23 am
List:org.kernel.vger.kernel-janitors

On Mon, Mar 22, 2010 at 05:04:55PM +0100, Takashi Iwai wrote:

At Mon, 22 Mar 2010 08:43:47 -0700, Joe Perches wrote:

On Mon, 2010-03-22 at 18:39 +0300, Dan Carpenter wrote:

card->driver is 15 characters and a NULL, the original code could cause a buffer overflow.

In version 2, I used a better name that Takashi Iwai suggested.

Perhaps it's better to use strncpy as well.

strlcpy() would be safer :)

But, in such a case, we want rather that the error is notified at build time.

Maybe a macro like below would be helpful to catch such bugs?

#define COPY_STRING(buf, src) \ do { \ if (__builtin_constant_p(src)) \ BUILD_BUG_ON(strlen(src) >= sizeof(buf)); \ strcpy(buf, src); \ } while (0)

and used like:

struct foo { char foo[5]; } x;

COPY_STRING(x.foo, "OK"); // OK COPY_STRING(x.foo, "1234567890"); // NG

why not define strcpy this way?

Marcin