Can someone tell me what I'm doing wrong?

Kenichi Okuyama okuyamak at dd.iij4u.or.jp
Wed May 23 02:36:52 GMT 2001


Dear Ray-san,

I don't know if this is the point. But this is what I found first.

>>>>> "RVD" == Ray Van Dolson <rayvd at bludgeon.org> writes:
RVD> #define WORKGROUP "STUDENTS"
(skip)
RVD>   strncpy(workgroup,WORKGROUP,8);

According to my ANSI-C dictionary, strncpy will do the following.

1) strlen( "STUDENTS" ) returns 8, so total buffer size required to
   copy "STUDENTS" to workgroup is *9*.

2) if given 3rd parameter which is allowed-copy-length is less then
   source string length +1 ( +1 for termination ),
   strncpy will make workgroup as follow:

   { 'S', 'T', 'U', 'D', 'E', 'N', 'T', 'S' }

   the key point is that we don't have '\0'.

Maybe this is the point ( or something similar is ).
---- 
Kenichi Okuyama




More information about the samba-technical mailing list