[libvirt] [PATCH 0/7] Improve performance of polkit checks

Michal Privoznik mprivozn at redhat.com
Fri Sep 12 12:20:32 UTC 2014


On 10.09.2014 16:20, Daniel P. Berrange wrote:
> This series improves the performance of the polkit driver by
> switching from use of the pk-check command, to the DBus APIs.
> As a convenient side effect, this means we are no longer
> vulnerable to CVE-2013-4311, on any polkit version, since we
> no longer need pk-check (which is what had the flaw).
>
> In terms of performance, with access control checking turned
> on for all APIs, the time to list 100 VMs dropps from 2.7 secs
> to 1 sec on my machine. To improve on this further, we would
> need to find a way to parallelize the issuing of DBus calls
> for each VM, instead of serialize the access checks.
>
> Daniel P. Berrange (7):
>    Add common API for doing polkit authentication
>    Add typesafe APIs for virIdentity attributes
>    Convert callers to use typesafe APIs for setting identity attrs
>    Convert callers to use typesafe APIs for getting identity attrs
>    Convert remote daemon & acl code to use polkit API
>    Support passing dict by reference for dbus messages
>    Convert polkit code to use DBus API instead of CLI helper
>
>   cfg.mk                             |   3 +
>   daemon/remote.c                    | 235 ++----------------------
>   include/libvirt/virterror.h        |   2 +
>   po/POTFILES.in                     |   2 +
>   src/Makefile.am                    |   1 +
>   src/access/viraccessdriverpolkit.c |  97 ++++------
>   src/libvirt_private.syms           |  22 +++
>   src/rpc/virnetserverclient.c       | 115 +++---------
>   src/util/virdbus.c                 | 274 +++++++++++++++++++---------
>   src/util/virerror.c                |   2 +
>   src/util/viridentity.c             | 320 +++++++++++++++++++++++++++------
>   src/util/viridentity.h             |  40 +++++
>   src/util/virpolkit.c               | 255 ++++++++++++++++++++++++++
>   src/util/virpolkit.h               |  34 ++++
>   src/util/virstring.c               |  14 ++
>   src/util/virstring.h               |   2 +
>   tests/Makefile.am                  |   9 +-
>   tests/virdbustest.c                | 218 +++++++++++++++++++++-
>   tests/virpolkittest.c              | 360 +++++++++++++++++++++++++++++++++++++
>   19 files changed, 1485 insertions(+), 520 deletions(-)
>   create mode 100644 src/util/virpolkit.c
>   create mode 100644 src/util/virpolkit.h
>   create mode 100644 tests/virpolkittest.c
>

ACK series, but see my comment to 7/7.

Michal




More information about the libvir-list mailing list