Re: [PATCH v2] lib: Simplify reg/unreg API

  • From: Sander Vrijders <Sander.Vrijders@xxxxxxxx>
  • To: ouroboros@xxxxxxxxxxxxx
  • Date: Thu, 22 Mar 2018 12:45:59 +0100


Some comments

-static ssize_t list_ipcps(char *   name,
-                          pid_t ** pids)
+static ssize_t list_ipcps(ipcp_info_msg_t *** ipcps,

 
-        return count;
+        return 0;
+
+ fail_mem:
+        while (i > 0) {
+                free((*ipcps)[i]->layer);
+                free((*ipcps)[i]->name);
+                free(*ipcps[--i]);
+        }
+        free(*ipcps);
+        *n_ipcps = 0;
+        return -ENOMEM;
+
+ fail_malloc:
+        while (i > 0)
+                free(*ipcps[--i]);
+        free(*ipcps);
+        *n_ipcps = 0;
+        return -ENOMEM;
 }
 

Memleak here. Can be simplified by calling fail_malloc above fail_mem
and simply decrementing i.

--- a/src/lib/ipcpd_messages.proto
+++ b/src/lib/ipcpd_messages.proto
@@ -40,15 +40,14 @@ enum ipcp_msg_code {
 
 message ipcp_msg {
         required ipcp_msg_code code        =  1;
-        optional string name               =  2;
         optional bytes hash                =  3;
         optional int32 port_id             =  4;
-        optional string dst_name           =  5;
+        optional string dst                =  5;
         optional uint32 qoscube            =  6;
         optional ipcp_config_msg conf      =  7;
         optional int32 pid                 =  8;
         optional layer_info_msg layer_info =  9;
         optional int32 response            = 10;
-        optional string comp_name          = 11;
+        optional string comp               = 11;
         optional int32 result              = 12;
 };

Renumber please.

--- a/src/tools/irm/irm_ipcp_bootstrap.c
+++ b/src/tools/irm/irm_ipcp_bootstrap.c
@@ -36,6 +36,12 @@

Getting this when compiling:

[ 64%] Building C object
src/tools/irm/CMakeFiles/irm.dir/irm_ipcp_bootstrap.c.o
/home/sander/upstream/ouroboros/src/tools/irm/irm_ipcp_bootstrap.c: In
function ‘do_bootstrap_ipcp’:
/home/sander/upstream/ouroboros/src/tools/irm/irm_ipcp_bootstrap.c:280:47:
error: ‘type’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
                         if (ipcp_type != NULL && type != ipcps[i].type) {


Other related posts:

  • » Re: [PATCH v2] lib: Simplify reg/unreg API - Sander Vrijders