summaryrefslogtreecommitdiff
path: root/src/lib/cacep.c
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2018-09-27 11:43:02 +0200
committerDimitri Staessens <[email protected]>2018-09-28 11:02:44 +0200
commit937f2b345aa76272a1c80828e7666ab87611c0d1 (patch)
tree7075a29558228d12b385ffaa488fe96b93e2584c /src/lib/cacep.c
parent656d1ffc2abdec309cd892b54b310da30fa08095 (diff)
downloadouroboros-937f2b345aa76272a1c80828e7666ab87611c0d1.tar.gz
ouroboros-937f2b345aa76272a1c80828e7666ab87611c0d1.zip
lib: Check return values init functions
This will check the return values of init functions so that the code is more robust. It also removes a duplicate init in the timerwheel, checks for buffer overflows in the RIB and checks string lengths. Signed-off-by: Sander Vrijders <[email protected]> Signed-off-by: Dimitri Staessens <[email protected]>
Diffstat (limited to 'src/lib/cacep.c')
-rw-r--r--src/lib/cacep.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/cacep.c b/src/lib/cacep.c
index 6efb7295..12751078 100644
--- a/src/lib/cacep.c
+++ b/src/lib/cacep.c
@@ -32,7 +32,7 @@
#include "cacep.pb-c.h"
typedef CacepMsg cacep_msg_t;
-#define BUF_SIZE 64
+#define BUF_SIZE 128
static int read_msg(int fd,
struct conn_info * info)
@@ -49,6 +49,11 @@ static int read_msg(int fd,
if (msg == NULL)
return -1;
+ if (strlen(msg->comp_name) > CACEP_BUF_STRLEN) {
+ cacep_msg__free_unpacked(msg, NULL);
+ return -1;
+ }
+
strcpy(info->comp_name, msg->comp_name);
strcpy(info->protocol, msg->protocol);