[PATCH] shell32: replace strcpy by memcpy due to slightly undefined struct handling

Marcus Meissner meissner at suse.de
Mon Feb 15 10:51:33 CST 2010


On Mon, Feb 15, 2010 at 06:46:06PM +0200, Paul Chitescu wrote:
> > -        strcpy(pData->u.network.szNames, "Entire Network");
> > +        memcpy(pData->u.network.szNames, "Entire Network", sizeof("Entire 
> Network")+1);
> 
> Please use a const buffer as "Entire Network" is a string literal, not 
> something with a clearly defined size (not even talking about length).
> 
> const char entireNetwork[] = "Entire Network";
> ...
> memcpy(pData->u.network.szNames, entireNetwork, sizeof(entireNetwork));
> 
> The final NUL is part of the char array. Regardless, we may still copy some 
> garbage after the NUL depending if/how the compiler pads the buffer.
> 
> Probably a better way would be to simply cast (char*)pData->u.network.szNames 
> since the length is not checked anyway.

The compiler checks the target size, and (char*) will not hinder the
compiler to check it.

I did not really want to uglify this code more then necessary. :(

Ciao, Marcus



More information about the wine-devel mailing list