[PATCH 0/3] access: Random improvements
*** BLURB HERE *** Michal Prívozník (3): gendispatch: Use g_autoptr() for virAccessManager viraccessmanager: Drop virAccessError macro gendispatch.pl: Produce newline at end of block src/access/viraccessmanager.c | 6 +----- src/access/viraccessmanager.h | 2 +- src/rpc/gendispatch.pl | 6 ++---- 3 files changed, 4 insertions(+), 10 deletions(-) -- 2.53.0
From: Michal Privoznik <mprivozn@redhat.com> Let's modify our gendispatch.pl script so that the code it generates for the ACL checks uses g_autoptr instead of explicit unref()-ing in each exit path. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/access/viraccessmanager.h | 2 +- src/rpc/gendispatch.pl | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/access/viraccessmanager.h b/src/access/viraccessmanager.h index 2050ac9b85..02661fe81b 100644 --- a/src/access/viraccessmanager.h +++ b/src/access/viraccessmanager.h @@ -38,7 +38,7 @@ void virAccessManagerSetDefault(virAccessManager *manager); virAccessManager *virAccessManagerNew(const char *name); virAccessManager *virAccessManagerNewStack(const char **names); - +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virAccessManager, virObjectUnref); void *virAccessManagerGetPrivateData(virAccessManager *manager); diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl index 8cb7d7eda2..4d385927aa 100755 --- a/src/rpc/gendispatch.pl +++ b/src/rpc/gendispatch.pl @@ -2165,7 +2165,7 @@ elsif ($mode eq "client") { print "/* Returns: $fail on error/denied, $pass on allowed */\n"; print "$ret $apiname(" . join(", ", @argdecls) . ")\n"; print "{\n"; - print " virAccessManager *mgr;\n"; + print " g_autoptr(virAccessManager) mgr = NULL;\n"; print " int rv;\n"; print "\n"; print " if (!(mgr = virAccessManagerGetDefault())) {\n"; @@ -2205,7 +2205,6 @@ elsif ($mode eq "client") { print " "; } print "(rv = $method(" . join(", ", @argvars, $perm) . ")) <= 0) {\n"; - print " virObjectUnref(mgr);\n"; if ($action eq "Ensure") { print " if (rv == 0)\n"; print " virReportError(VIR_ERR_ACCESS_DENIED,\n"; @@ -2219,7 +2218,6 @@ elsif ($mode eq "client") { print "\n"; } - print " virObjectUnref(mgr);\n"; print " return $pass;\n"; print "}\n\n"; } -- 2.53.0
From: Michal Privoznik <mprivozn@redhat.com> The virAccessError macro already exists under a different name: virReportError(). Switch code to use the latter and drop the former. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/access/viraccessmanager.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/access/viraccessmanager.c b/src/access/viraccessmanager.c index 6d9fdee5f1..9ceec2744b 100644 --- a/src/access/viraccessmanager.c +++ b/src/access/viraccessmanager.c @@ -36,10 +36,6 @@ VIR_LOG_INIT("access.accessmanager"); -#define virAccessError(code, ...) \ - virReportErrorHelper(VIR_FROM_THIS, code, __FILE__, \ - __FUNCTION__, __LINE__, __VA_ARGS__) - struct _virAccessManager { virObjectLockable parent; @@ -203,7 +199,7 @@ virAccessManagerSanitizeError(int ret, { if (ret < 0) { virResetLastError(); - virAccessError(VIR_ERR_ACCESS_DENIED, + virReportError(VIR_ERR_ACCESS_DENIED, _("'%1$s' denied access"), driverName); } -- 2.53.0
From: Michal Privoznik <mprivozn@redhat.com> After each block that's generated into viraccessapicheck.c there should be a new line. Format it into generated source file. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/rpc/gendispatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl index 4d385927aa..252562ccfd 100755 --- a/src/rpc/gendispatch.pl +++ b/src/rpc/gendispatch.pl @@ -2214,7 +2214,7 @@ elsif ($mode eq "client") { print " virResetLastError();\n"; print " return $fail;\n"; } - print " }"; + print " }\n"; print "\n"; } -- 2.53.0
On a Wednesday in 2026, Michal Privoznik via Devel wrote:
*** BLURB HERE ***
Michal Prívozník (3): gendispatch: Use g_autoptr() for virAccessManager viraccessmanager: Drop virAccessError macro gendispatch.pl: Produce newline at end of block
src/access/viraccessmanager.c | 6 +----- src/access/viraccessmanager.h | 2 +- src/rpc/gendispatch.pl | 6 ++---- 3 files changed, 4 insertions(+), 10 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (2)
-
Ján Tomko -
Michal Privoznik