[apparmor] [patch] Let the parser reject ambiguous unit 'm' for rlimit rttime
John Johansen
john.johansen at canonical.com
Sat Jul 11 01:21:55 UTC 2015
On 07/10/2015 12:34 PM, Steve Beattie wrote:
> On Fri, Jul 10, 2015 at 11:50:12AM -0700, Steve Beattie wrote:
>> On Thu, Jul 09, 2015 at 04:22:52AM -0700, John Johansen wrote:
>>> move convert_time_units to parser_misc.c and add unit tests
>>> add "sec" abreviation of secons
>>> optionally allow whitespace between rlimit value and unit
>>> allow time the unit to be optional, but output a warning
>>> update man page to add a note about 'cpu' using units >= seconds
>>> fix "else" error by using else if (tmp < 0)
>>> fix "weekss"
>>>
>>> ---
>>>
>>> commit 5ee47621cc28b745d508b0c69046ce1b3776f8b4
>>> Author: John Johansen <john.johansen at canonical.com>
>>> Date: Thu Jun 18 02:22:42 2015 -0700
>>>
>>> fix: rlimit unit parsing for time
>>>
>>> currently the parser supports ambiguous units like m for time,
>>> which could mean minutes or milliseconds. Fix this and refactor the
>>> time parsing into a single routine.
>>>
>>> Signed-off-by: John Johansen <john.johansen at canonical.com>
>>
>> Acked-by: Steve Beattie <steve at nxnw.org> with a couple of bits:
>>
>>> + TIME_TEST(1LL, 1LL, NULL, 1LL);
>>> + TIME_TEST(12345LL, 1LL, NULL, 12345LL);
>>> + TIME_TEST(10LL, 10LL, NULL, 10LL);
>>> + TIME_TEST(123450LL, 10LL, NULL, 123450LL);
>>> +
>>> + TIME_TEST(12345LL, 1LL, "us", 12345LL);
>>
>> Please fix the whitespace breakage above (spaces v tab) before
>> committing,
>>
>>> + TIME_TEST(12345LL, 1LL, "microsecond", 12345LL);
>>> + TIME_TEST(12345LL, 1LL, "microseconds", 12345LL);
>>
>> and I'd like an ack on the following:
>>
>> Subject: parser: add rlimit data units equality tests
>>
>> Signed-off-by: Steve Beattie <steve at nxnw.org>
>
> Bleah, I'm not very good at following other's examples. v2:
> ---
> parser/tst/equality.sh | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> Index: b/parser/tst/equality.sh
> ===================================================================
> --- a/parser/tst/equality.sh
> +++ b/parser/tst/equality.sh
> @@ -464,6 +464,31 @@ verify_binary_equality "change_profile =
> "/t { change_profile /**, }" \
> "/t { change_profile /** -> **, }"
>
> +# verify rlimit data conversions
> +verify_binary_equality "set rlimit rttime <= 12 weeks" \
> + "/t { set rlimit rttime <= 12 weeks, }" \
> + "/t { set rlimit rttime <= $((12 * 7)) days, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24)) hours, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24 * 60)) minutes, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60)) seconds, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000)) ms, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)) us, }" \
> + "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)), }"
> +
> +verify_binary_equality "set rlimit cpu <= 42 weeks" \
> + "/t { set rlimit cpu <= 42 weeks, }" \
> + "/t { set rlimit cpu <= $((42 * 7)) days, }" \
> + "/t { set rlimit cpu <= $((42 * 7 * 24)) hours, }" \
> + "/t { set rlimit cpu <= $((42 * 7 * 24 * 60)) minutes, }" \
> + "/t { set rlimit cpu <= $((42 * 7 * 24 * 60 * 60)) seconds, }" \
> + "/t { set rlimit cpu <= $((42 * 7 * 24 * 60 * 60)), }"
> +
> +verify_binary_equality "set rlimit memlock <= 2GB" \
> + "/t { set rlimit memlock <= 2GB, }" \
> + "/t { set rlimit memlock <= $((2 * 1024)) MB, }" \
> + "/t { set rlimit memlock <= $((2 * 1024 * 1024)) KB, }" \
> + "/t { set rlimit memlock <= $((2 * 1024 * 1024 * 1024)) , }" \
> +
> if [ $fails -ne 0 -o $errors -ne 0 ]
> then
> printf "ERRORS: %d\nFAILS: %d\n" $errors $fails 2>&1
>
>
>
I committed these tests as well
More information about the AppArmor
mailing list