On Wed, Jan 6, 2010 at 5:33 PM, Jiri Palecek <[email protected]> wrote:
> Garrett Cooper napsal(a):
>>
>> On Tue, Jan 5, 2010 at 5:41 PM, Garrett Cooper<[email protected]>  wrote:
>>>
>>> On Tue, Jan 5, 2010 at 5:27 PM, Jiri Palecek<[email protected]>  wrote:
>>>>
>>>> Michal Simek napsal(a):
>>>>>
>>>>> Hi,
>>>>
>>>> Hi,
>>>>>
>>>>> I have some problems with lchown02 test which is caused with this
>>>>> patch.
>>>>> What is prep_create_link?
>>>>>
>>>>> Thanks,
>>>>> Michal
>>>>>
>>>>>
>>>>>
>>>>> http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=ee1a022fc76076d7fc1b6b1797c195244414c038
>>>>>
>>>>>
>>>>>
>>>>> diff --git a/runtest/syscalls b/runtest/syscalls
>>>>> index fbe8641..34631ed 100644 (file)
>>>>> --- a/runtest/syscalls
>>>>> +++ b/runtest/syscalls
>>>>> @@ -462,10 +462,10 @@ kill12 kill12
>>>>>
>>>>> lchown01 lchown01
>>>>> lchown01_16 lchown01_16
>>>>> -lchown02 cp -p $LTPROOT/testcases/bin/create_link $TMP; lchown02
>>>>> -lchown02_16 cp -p $LTPROOT/testcases/bin/create_link $TMP; lchown02_16
>>>>> +lchown02 prep_create_link; lchown02
>>>>> +lchown02_16 prep_create_link; lchown02_16
>>>>
>>>> IMHO it should do the same as the line above. But I think the whole
>>>> thing
>>>> could be deleted without causing any grief:
>>>>
>>>>
>>>> http://repo.or.cz/w/ltp-debian.git?a=commit;h=a5499edcf368fa88df924f94ffcbe63c22b46e82
>>>
>>> The test needs create_link in $TMP; that's why I scripted it as a
>>> one-liner (but stupid me probably forgot to add the script to CVS
>>> -_-).
>>> Let me look and I'll get back to you shortly.
>>
>> Fixed. The executable needed CAP_CHOWN capability and that's part of
>> the point behind that script...
>
> Couldn't the executable just get CAP_CHOWN with cap_set_proc in case it is
> running under root with restricted capabilities?
>
> I'm not sure it wouldn't fail even with the suid-root executable under such
> condition - are you really sure it doesn't (esp. in the face of lchown01,
> which would fail almost surely and doesn't have this hack)?

    This requires libcap though, which means that any system under
test without it would fail the test:

NAME
       cap_get_proc,  cap_set_proc,  capgetp - capability manipulation on pro-
       cesses

SYNOPSIS
       #include <sys/capability.h>

       cap_t cap_get_proc(void);

       int cap_set_proc(cap_t cap_p);

       #include <sys/types.h>

       cap_t cap_get_pid(pid_t pid);

       Link with -lcap.

    I agree though, this is the best / cleanest solution...
Thanks,
-Garrett

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to