diff options
Diffstat (limited to 'src/irmd')
| -rw-r--r-- | src/irmd/main.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/src/irmd/main.c b/src/irmd/main.c index 4d511af9..f9438b9b 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1840,14 +1840,12 @@ static void * acceptloop(void * o)                  cmd = malloc(sizeof(*cmd));                  if (cmd == NULL) {                          log_err("Out of memory."); +                        close(csockfd);                          break;                  } -                pthread_mutex_lock(&irmd.cmd_lock); -                  cmd->len = read(csockfd, cmd->cbuf, IRM_MSG_BUF_SIZE);                  if (cmd->len <= 0) { -                        pthread_mutex_unlock(&irmd.cmd_lock);                          log_err("Failed to read from socket.");                          close(csockfd);                          free(cmd); @@ -1856,6 +1854,8 @@ static void * acceptloop(void * o)                  cmd->fd  = csockfd; +                pthread_mutex_lock(&irmd.cmd_lock); +                  list_add(&cmd->next, &irmd.cmds);                  pthread_cond_signal(&irmd.cmd_cond); | 
