summaryrefslogtreecommitdiff
path: root/libdaemon/client/daemon-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdaemon/client/daemon-client.c')
-rw-r--r--libdaemon/client/daemon-client.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/libdaemon/client/daemon-client.c b/libdaemon/client/daemon-client.c
index d37b96658..991bf8a0a 100644
--- a/libdaemon/client/daemon-client.c
+++ b/libdaemon/client/daemon-client.c
@@ -21,7 +21,6 @@
#include <string.h>
#include <stdio.h>
#include <unistd.h>
-#include <assert.h>
#include <errno.h> // ENOMEM
daemon_handle daemon_open(daemon_info i)
@@ -100,7 +99,13 @@ daemon_reply daemon_send(daemon_handle h, daemon_request rq)
{
struct buffer buffer;
daemon_reply reply = { 0 };
- assert(h.socket_fd >= 0);
+
+ if (h.socket_fd < 0) {
+ log_error(INTERNAL_ERROR "Daemon send: socket fd cannot be negative %d", h.socket_fd);
+ reply.error = EINVAL;
+ return reply;
+ }
+
buffer = rq.buffer;
if (!buffer.mem)
@@ -109,7 +114,12 @@ daemon_reply daemon_send(daemon_handle h, daemon_request rq)
return reply;
}
- assert(buffer.mem);
+ if (!buffer.mem) {
+ log_error(INTERNAL_ERROR "Daemon send: no memory available");
+ reply.error = ENOMEM;
+ return reply;
+ }
+
if (!buffer_write(h.socket_fd, &buffer))
reply.error = errno;