On Fri, Aug 03, 2007 at 08:47:56AM +0530, Satyam Sharma wrote: > > >On Thu, 2 Aug 2007, Jan Engelhardt wrote: > >> On Aug 2 2007 21:55, Guennadi Liakhovetski wrote: >> > [...] >> > >> > struct { >> > char c[4]; >> > int i; >> > } t; >> > t.i = 0x12345678; >> > strcpy(t.c, c); >> > >> >and t.i is silently corrupted. Just wanted to ask if this is known, >> >really... >> >> What does this have to do with the kernel? The string "0123" is >> generally _five_ characters long, so c[4] is not enough. >> Or use strncpy. > ><nitpicking> > >While we're talking of null-termination of strings, then I bet you >generally want to be using strlcpy(), really. Often strncpy() isn't >what you want. Of course, if that buffer isn't a string at all, then >you should be using memfoo() functions and not strbar() ones in the >first place ...
Afaik, strlcpy() and strlcat() are NOT standard C library functions. But, I know, they are available in Linux kernel. ;) And yes, they are better than strn{cpy,cat}(). Regards. -- _ /| \'o.O' =(___)= U - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/