]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
check result of malloc
[meshlink] / src / meshlink.c
index 1e87c3ab4883f8f7f44177a7e785a4b7029cb822..33af6c36272a4c05aac9c1f1cfab87c0f5f5ccf4 100644 (file)
@@ -743,7 +743,7 @@ static bool meshlink_setup(meshlink_handle_t *mesh) {
        return true;
 }
 
-meshlink_handle_t *meshlink_open(const char *confbase, const char *name) {
+meshlink_handle_t *meshlink_open(const char *confbase, const char *name, const char* appname) {
        // Validate arguments provided by the application
        bool usingname = false;
 
@@ -753,6 +753,12 @@ meshlink_handle_t *meshlink_open(const char *confbase, const char *name) {
                return NULL;
        }
 
+       if(!appname || !*appname) {
+               fprintf(stderr, "No appname given!\n");
+               meshlink_errno = MESHLINK_EINVAL;
+               return NULL;
+       }
+
        if(!name || !*name) {
                fprintf(stderr, "No name given!\n");
                //return NULL;
@@ -768,6 +774,7 @@ meshlink_handle_t *meshlink_open(const char *confbase, const char *name) {
 
        meshlink_handle_t *mesh = xzalloc(sizeof *mesh);
        mesh->confbase = xstrdup(confbase);
+       mesh->appname = xstrdup(appname);
        if (usingname) mesh->name = xstrdup(name);
        pthread_mutex_init ( &(mesh->outpacketqueue_mutex), NULL);
        pthread_mutex_init ( &(mesh->nodes_mutex), NULL);