[PATCHSET] Fix and add -Werror=strict-overflow -Wstrict-overflow=2

jim jim.brown at rsmas.miami.edu
Thu Dec 7 21:56:52 UTC 2017


Yes, that would be much better.

On 12/7/2017 4:13 PM, Andreas Schneider wrote:
> On Thursday, 7 December 2017 21:18:54 CET jim via samba-technical wrote:
>> This change is wrong. Original code '(nread == 0) || ...' is more correct.
>> More rigorous would be (nread == 0) || (nread > 0 && namebuf[nread-1] !=
>> '\0').
>> nread is 0 resulting in invalid access to namebuf[nread-1] in while
>> condition check.
> I think we need a do { } while(namebuf[nread-1] != '\0') loop here. This would
> fix it correctly.
>
> Do you agree?
>
>> On 12/7/2017 2:37 PM, Andreas Schneider via samba-technical wrote:
>>> diff --git a/source3/modules/vfs_preopen.c b/source3/modules/vfs_preopen.c
>>> index 18b01e6c05e..4ef0a2e34ab 100644
>>> --- a/source3/modules/vfs_preopen.c
>>> +++ b/source3/modules/vfs_preopen.c
>>> @@ -156,7 +156,7 @@ static bool preopen_helper_open_one(int sock_fd, char
>>> **pnamebuf,>
>>>    	nread = 0;
>>>
>>> -	while ((nread == 0) || (namebuf[nread-1] != '\0')) {
>>> +	while (namebuf[nread-1] != '\0') {
>>>
>>>    		ssize_t thistime;
>>>    		
>>>    		thistime = read(sock_fd, namebuf + nread,
>>>
>>> -- 2.15.1
>




More information about the samba-technical mailing list