Signed-off-by: Angus Salkeld asalkeld@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);
quarterback-devel@lists.fedorahosted.org