Signed-off-by: Angus Salkeld <asalkeld(a)redhat.com>
---
lib/ipc_us.c | 1 +
lib/ipcc.c | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/lib/ipc_us.c b/lib/ipc_us.c
index 08bedd7..2607fb9 100644
--- a/lib/ipc_us.c
+++ b/lib/ipc_us.c
@@ -676,6 +676,7 @@ send_response:
if (res == -EACCES) {
qb_util_log(LOG_ERR, "Invalid IPC credentials.");
} else {
+ errno = -res;
qb_util_perror(LOG_ERR, "Error in connection setup");
}
qb_ipcs_disconnect(c);
diff --git a/lib/ipcc.c b/lib/ipcc.c
index 6322994..ec59b25 100644
--- a/lib/ipcc.c
+++ b/lib/ipcc.c
@@ -40,6 +40,11 @@ qb_ipcc_connect(const char *name, size_t max_msg_size)
return NULL;
}
+ if (max_msg_size < sizeof(struct qb_ipc_connection_response)) {
+ errno = EINVAL;
+ return NULL;
+ }
+
c->setup.max_msg_size = max_msg_size;
(void)strlcpy(c->name, name, NAME_MAX);
res = qb_ipcc_us_setup_connect(c, &response);
--
1.7.9.3
Show replies by date