Hi,

@Chris: As for your points:

> I agree with the replacement of strcpy with strncpy, but I think we should
> explicitly null terminate in case the src is greater or equal to the dst 
> buffer
> size. This is done elsewhere in this file too, e.g.
> 
>    strncpy(buf, input, sizeof(buf) - 1);
>    buf[sizeof(buf) - 1] = '\0';

There are 2 different patterns of strncpy usage in this code. One is where we 
would use strncpy giving the full buffer length and eventually setting the last 
byte to 0 to make sure the string is terminated. The other pattern is where a 
memset to 0 of the buffer was done before. So I thought it's fine here to give 
strncpy "buffersize - 1" as length since per its documentation it would copy 
all characters up to bufferlen and not terminate with 0 if strlen is >= 
bufferlen. That makes sense?

> >> Apart from quite a few whitespace changes to clean up the coding, I went
> >> through and replaced all occurences of strcpy with strncpy as this was a
> >> finding of a code scanner that we used. Also in function
> >> "enumIPv6Interfaces" for Linux the local variable plen was changed from
> >> int to short.
> 
> Why was this done for plen specifically, and not scope, or others ?

In struct _netaddr the mask field is defined as short and hence short is 
expected by the addif function. So plen should be a short in enumIPv6Interfaces 
for Linux, too. While looking again I see that the BSD function "static int 
prefix(void *val, int size)" should also rather be a "static short prefix(void 
*val, int size)". Shall I update this as well?

@Alan: As for the line length: If I get the feedback on those 2 points I'll 
prepare a new webrev to shorten some lines.
@Dmitry: Will also work in your findings in the update...

Thanks for all the feedback
Christoph

Reply via email to