Re: [PATCH v2] libselinux: clean up process file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/08/2016 03:30 PM, Roberts, William C wrote:
> <snip>
> 
>>>> +	/* Append any given suffix */
>>>> +	char *to = stpcpy(&current[current_size], ".");
>>>
>>> Simpler as:
>>> 	char *to = current + current_size;
>>> 	*to++ = '.';
>>
>> I don't think this is simpler, but I'll do it.
> 
> Doing that as is gets us this:
> ==26050== Conditional jump or move depends on uninitialised value(s)
> ==26050==    at 0x4C2DD9A: strcat (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==26050==    by 0x4E4B6D8: rolling_append (label_file.c:429)
> ==26050==    by 0x4E4B8A3: open_file (label_file.c:472)
> ==26050==    by 0x4E4BAC6: process_file (label_file.c:519)
> ==26050==    by 0x4E4BE6D: init (label_file.c:582)
> ==26050==    by 0x4E4D02B: selabel_file_init (label_file.c:965)
> ==26050==    by 0x4E481F5: selabel_open (label.c:340)
> ==26050==    by 0x4E513E0: matchpathcon_init_prefix (matchpathcon.c:322)
> ==26050==    by 0x4E51725: matchpathcon (matchpathcon.c:413)
> ==26050==    by 0x400D86: printmatchpathcon (matchpathcon.c:26)
> ==26050==    by 0x40141F: main (matchpathcon.c:196)
> 
> Because strcat() needs to fastforward to the null byte, this would need to
> change to an strcpy.

Yes, sorry - switch the strcat() to strcpy() too.  Simpler and more
efficient, and if you had to append further components, you could use
stpcpy() rather than strcpy() each time until the last one.


_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux