GNU bug report logs -
#16335
Segmentation fault when using cp -a with SELinux and fakeroot
Previous Next
Full log
Message #52 received at 16335 <at> debbugs.gnu.org (full text, mbox):
On 01/14/2014 02:55 PM, Pádraig Brady wrote:
> On 01/14/2014 12:38 PM, Bernhard Voelker wrote:
>>> * tests/cp/no-ctx.sh: Since the test diagnoses whether the
>>> intercepted lgetfilecon() calls are actually called or not,
>>
>> The witness file is only created for getfilecon() - not for
>> lgetfilecon().
>
> In the wrapper, lgetfilecon() calls getfilecon() ?
Ah, sure. I missed that, sorry.
>>> diff --git a/tests/cp/no-ctx.sh b/tests/cp/no-ctx.sh
>>> index 3b5eb82..6851785 100755
>>> --- a/tests/cp/no-ctx.sh
>>> +++ b/tests/cp/no-ctx.sh
>>> @@ -22,6 +22,7 @@
>>> . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
>>> print_ver_ cp
>>> require_gcc_shared_
>>> +requires_selinux_
>
> BTW that should be require_selinux_
> It's dangerous that we don't diagnose such typos.
> I wonder would it be appropriate to have a test_require_()
> wrapper that would catch such things, and be called like:
> test_require_ gcc_shared selinux
Hmm, but that would imply the same problem - if someone
misspells "test_require_" ... for which we could maybe add
a syntax-check rule.
I'm not sure if it's worth the effort - when adding/changing
a test, we have to look into the .log file anyway.
>>> # Replace each getfilecon and lgetfilecon call with a call to these stubs.
>>> cat > k.c <<'EOF' || framework_failure_
>>
>> I'm a bit biased about this patch. Okay, it's perfectly valid to
>> skip the test if the system doesn't support SELinux, but OTOH it may
>> be quite valuable to verify the exit codes like that on non-SELinux
>> systems,
>
> Well I did state that "The test cases are minimal on non SELinux systems
> and should be well covered by other tests"...
okay, I'm fine with that.
>> i.e., based on stderr of the last cp call, the "preloaded"
>> file must exist or not. The test could verify that. WDYT?
>
> ...and if the last cp fails it could be due to the wrapper running,
> or SELinux not being supported. We'd need something else to
> distinguish here, and require_selinux_ is the best I can think of
> at present.
>
> I suppose an alternative would be to refactor require_selinux_
> to a function that just determines if it's available and do:
>
> test -e preloaded ||
> { have_selinux_ && framework_failure_ 'LD_PRELOAD interception failed'; }
I think we should keep it as simple as possible, therefore I'd
now favor your initial version of the patch (with the typo corrected).
Thanks & have a nice day,
Berny
This bug report was last modified 11 years and 134 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.