OSDN Git Service

apparmor: reset pos on failure to unpack for various functions
authorMike Salvatore <mike.salvatore@canonical.com>
Wed, 12 Jun 2019 21:55:14 +0000 (14:55 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Sep 2019 06:22:16 +0000 (08:22 +0200)
commit17111037fdf07b2468598506229872b8a135f834
treed78e0e7500605c225361495ee0fe2b00813ca8d5
parent90ca4912e55d99de7fea970ec2b2d19e52e6ef54
apparmor: reset pos on failure to unpack for various functions

[ Upstream commit 156e42996bd84eccb6acf319f19ce0cb140d00e3 ]

Each function that manipulates the aa_ext struct should reset it's "pos"
member on failure. This ensures that, on failure, no changes are made to
the state of the aa_ext struct.

There are paths were elements are optional and the error path is
used to indicate the optional element is not present. This means
instead of just aborting on error the unpack stream can become
unsynchronized on optional elements, if using one of the affected
functions.

Cc: stable@vger.kernel.org
Fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy")
Signed-off-by: Mike Salvatore <mike.salvatore@canonical.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
security/apparmor/policy_unpack.c