[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen stable-4.14] tools/xenstore: fix connection->id usage
commit 9ad9fde555b6ec98c2cec05e28d3ee4c3127d6f5 Author: Juergen Gross <jgross@xxxxxxxx> AuthorDate: Tue Sep 13 07:35:08 2022 +0200 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Tue Nov 1 15:20:41 2022 +0000 tools/xenstore: fix connection->id usage Don't use conn->id for privilege checks, but domain_is_unprivileged(). This is part of XSA-326. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx> (cherry picked from commit 3047df38e1991510bc295e3e1bb6b6b6c4a97831) --- tools/xenstore/xenstored_control.c | 2 +- tools/xenstore/xenstored_core.h | 2 +- tools/xenstore/xenstored_transaction.c | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/xenstore/xenstored_control.c b/tools/xenstore/xenstored_control.c index 8d48ab4820..bce6662f6e 100644 --- a/tools/xenstore/xenstored_control.c +++ b/tools/xenstore/xenstored_control.c @@ -198,7 +198,7 @@ int do_control(struct connection *conn, struct buffered_data *in) int cmd; char **vec; - if (conn->id != 0) + if (domain_is_unprivileged(conn)) return EACCES; num = xs_count_strings(in->buffer, in->used); diff --git a/tools/xenstore/xenstored_core.h b/tools/xenstore/xenstored_core.h index 1eb6131fc8..98db4afcaa 100644 --- a/tools/xenstore/xenstored_core.h +++ b/tools/xenstore/xenstored_core.h @@ -93,7 +93,7 @@ struct connection /* The index of pollfd in global pollfd array */ int pollfd_idx; - /* Who am I? 0 for socket connections. */ + /* Who am I? Domid of connection. */ unsigned int id; /* Is this a read-only connection? */ diff --git a/tools/xenstore/xenstored_transaction.c b/tools/xenstore/xenstored_transaction.c index 6fbdb29dcd..9bef6e72a5 100644 --- a/tools/xenstore/xenstored_transaction.c +++ b/tools/xenstore/xenstored_transaction.c @@ -483,7 +483,8 @@ int do_transaction_start(struct connection *conn, struct buffered_data *in) if (conn->transaction) return EBUSY; - if (conn->id && conn->transaction_started > quota_max_transaction) + if (domain_is_unprivileged(conn) && + conn->transaction_started > quota_max_transaction) return ENOSPC; /* Attach transaction to input for autofree until it's complete */ -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.14
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |