diff options
| -rw-r--r-- | src/irmd/main.c | 18 | ||||
| -rw-r--r-- | src/lib/bitmap.c | 9 | ||||
| -rw-r--r-- | src/lib/dev.c | 20 | ||||
| -rw-r--r-- | src/tools/echo/echo_client.c | 4 | ||||
| -rw-r--r-- | src/tools/echo/echo_server.c | 8 | 
5 files changed, 38 insertions, 21 deletions
| diff --git a/src/irmd/main.c b/src/irmd/main.c index 75b8506e..a6403612 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -53,7 +53,7 @@  #endif  #ifndef IRMD_THREADPOOL_SIZE -  #define IRMD_THREADPOOL_SIZE 10 +  #define IRMD_THREADPOOL_SIZE 3  #endif @@ -467,7 +467,7 @@ static int bootstrap_ipcp(instance_name_t *  api,                  return -1;          } -        LOG_INFO("Bootstrapped IPCP %s-%d. in DIF %s", +        LOG_INFO("Bootstrapped IPCP %s-%d in DIF %s.",                   api->name, api->id, conf->dif_name);          return 0; @@ -1178,7 +1178,7 @@ static struct irm * irm_create()          i->sockfd = server_socket_open(IRM_SOCK_PATH);          if (i->sockfd < 0) { -                irm_destroy(instance); +                irm_destroy(i);                  return NULL;          } @@ -1200,10 +1200,14 @@ int main()          sig_act.sa_sigaction = &irmd_sig_handler;          sig_act.sa_flags     = SA_SIGINFO; -        sigaction(SIGINT,  &sig_act, NULL); -        sigaction(SIGTERM, &sig_act, NULL); -        sigaction(SIGHUP,  &sig_act, NULL); -        sigaction(SIGPIPE, &sig_act, NULL); +        if (sigaction(SIGINT,  &sig_act, NULL) < 0) +                exit(1); +        if (sigaction(SIGTERM, &sig_act, NULL) < 0) +                exit(1); +        if (sigaction(SIGHUP,  &sig_act, NULL) < 0) +                exit(1); +        if (sigaction(SIGPIPE, &sig_act, NULL) < 0) +                exit(1);          instance = irm_create();          if (instance == NULL) diff --git a/src/lib/bitmap.c b/src/lib/bitmap.c index 0e3c968f..e84145b2 100644 --- a/src/lib/bitmap.c +++ b/src/lib/bitmap.c @@ -112,7 +112,7 @@ struct bmp * bmp_create(size_t bits, ssize_t offset)                  return NULL;          tmp->bitmap = malloc(BITS_TO_LONGS(bits) * sizeof(unsigned long)); -        if (!tmp->bitmap) { +        if (tmp->bitmap == NULL) {                  free(tmp);                  return NULL;          } @@ -142,6 +142,9 @@ int bmp_destroy(struct bmp * b)  static ssize_t bad_id(struct bmp * b)  { +        if (b == NULL) +                return -1; +          return b->offset - 1;  } @@ -177,7 +180,7 @@ static bool is_id_valid(struct bmp * b,  bool bmp_is_id_valid(struct bmp * b,                       ssize_t id)  { -        if (!b) +        if (b == NULL)                  return false;          return is_id_valid(b, id); @@ -188,7 +191,7 @@ int bmp_release(struct bmp * b,  {          ssize_t rid; -        if (!b) +        if (b == NULL)                  return -1;          if (!is_id_valid(b, id)) diff --git a/src/lib/dev.c b/src/lib/dev.c index 40bf2dc3..c99e8cdb 100644 --- a/src/lib/dev.c +++ b/src/lib/dev.c @@ -249,12 +249,26 @@ int flow_accept(int     fd,                  return -1;          } +        *ap_name = strdup(recv_msg->ap_name); +        if (*ap_name == NULL) { +                bmp_release(_ap_instance->fds, cfd); +                irm_msg__free_unpacked(recv_msg, NULL); +                return -1; +        } + +        if (ae_name != NULL) { +                *ae_name = strdup(recv_msg->ae_name); +                if (*ae_name == NULL) { +                        bmp_release(_ap_instance->fds, cfd); +                        irm_msg__free_unpacked(recv_msg, NULL); +                        return -1; +                } +        } +          _ap_instance->flows[cfd].port_id = recv_msg->port_id;          _ap_instance->flows[cfd].oflags  = FLOW_O_DEFAULT; -        *ap_name = strdup(recv_msg->ap_name); -        if (ae_name != NULL) -                *ae_name = strdup(recv_msg->ae_name); +          irm_msg__free_unpacked(recv_msg, NULL); diff --git a/src/tools/echo/echo_client.c b/src/tools/echo/echo_client.c index 36942028..9cf56cee 100644 --- a/src/tools/echo/echo_client.c +++ b/src/tools/echo/echo_client.c @@ -33,8 +33,10 @@ int client_main()          char * message  = "Client says hi!";          ssize_t count = 0; -        if(ap_init(CLIENT_AP_NAME)) +        if(ap_init(CLIENT_AP_NAME)) { +                printf("Failed to init AP.");                  return -1; +        }          fd = flow_alloc(SERVER_AP_NAME, NULL, NULL);          if (fd < 0) { diff --git a/src/tools/echo/echo_server.c b/src/tools/echo/echo_server.c index 4b1a17b1..d9af1c1f 100644 --- a/src/tools/echo/echo_server.c +++ b/src/tools/echo/echo_server.c @@ -20,8 +20,6 @@   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   */ -#include <ouroboros/config.h> -  #include <stdbool.h>  #include <signal.h>  #include <unistd.h> @@ -29,11 +27,6 @@  #include <ouroboros/dev.h> -#ifdef OUROBOROS_CONFIG_DEBUG - #define OUROBOROS_PREFIX "echo-server" - #include <ouroboros/logs.h> -#endif -  #define DIF_NAME "*"  void shutdown_server(int signo) @@ -68,6 +61,7 @@ int server_main()          }          if(ap_init(SERVER_AP_NAME)) { +                printf("Failed to init AP.");                  return -1;          } | 
