[apparmor] aa.py: fix netrules_access_check()
Kshitij Gupta
kgupta8592 at gmail.com
Mon Oct 20 19:34:45 UTC 2014
Hello,
On Tue, Oct 21, 2014 at 12:19 AM, Christian Boltz <apparmor at cboltz.de>
wrote:
> Hello,
>
> Am Sonntag, 19. Oktober 2014 schrieb Christian Boltz:
> > netrules_access_check() in aa.py checks if
> > type(netrules['rule'][family]) == dict
> > however this check always returns false (at least with py3, I didn't
> > test with py2).
> >
> > This broken type check is the reason for
> > https://bugs.launchpad.net/apparmor/+bug/1380368
> > aa-logprof doesn't propose abstractions for network rules
> > and
> > https://bugs.launchpad.net/apparmor/+bug/1380367
> > aa-logprof asks for already existing network rules
> >
> > The following patch fixes both bugs:
>
>
> Thanks for tracing down relevant bug-reports. Please update the
bug-reports. :-)
> > So the type check (or another check) is still needed. Any ideas how to
> > implement it in a way that works?
>
> After some discussion with Kshitij on #apparmor here's the working
> patch.
>
> Note that the type check itsself is (nearly?) always true, but it's
needed as a safety net because in theory netrules['rule'][family] could
> be boolean True - see line 2994.
>
> Update: cboltz found the type check did avert a crash in case of a rule
like "network inet".
The sock_type in .....keys() check is there to ensure the hasher doesn't
> automagically add an empty sub-dict, which caused the regression in the
> first version of my patch.
>
> ReasonsWhyShouldWeGetRidOfHasherMagicAndMoveToClasses++;
>
> === modified file 'utils/apparmor/aa.py'
> --- utils/apparmor/aa.py 2014-10-20 18:07:24 +0000
> +++ utils/apparmor/aa.py 2014-10-20 18:40:53 +0000
> @@ -4460,7 +4460,8 @@
> if netrules['rule'].get(family, False) is True:
> all_net_family = True
> if (netrules['rule'].get(family, False) and
> - type(netrules['rule'][family]) == dict and
> + type(netrules['rule'][family]) == type(hasher()) and
> + sock_type in netrules['rule'][family].keys() and
> netrules['rule'][family][sock_type]):
> net_family_sock = True
>
>
>
>
Thanks for the patch.
Acked-by: Kshitij Gupta <kgupta8592 at gmail.com>.
Regards,
Kshitij Gupta
Regards,
>
> Christian Boltz
> --
> Programming today is a race between software engineers striving to build
> bigger and better idiot-proof programs, and the Universe trying to
> produce bigger and better idiots. So far, the Universe is winning.
>
>
>
--
> AppArmor mailing list
> AppArmor at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/apparmor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20141021/c0d81b80/attachment.html>
More information about the AppArmor
mailing list