diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2022-02-25 00:15:28 +0100 | 
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2022-03-03 12:00:53 +0100 | 
| commit | 27374c05645cb6a656e82a9a0b6bc810082cfe4e (patch) | |
| tree | 9177d572965d352ca606e5535a5971e91fddde4a /src/ipcpd/local | |
| parent | 9719dbe335af4c6add39d739f78a68040b62d8a3 (diff) | |
| download | ouroboros-27374c05645cb6a656e82a9a0b6bc810082cfe4e.tar.gz ouroboros-27374c05645cb6a656e82a9a0b6bc810082cfe4e.zip | |
ipcpd: Fix some unchecked return values
Fixes some unchecked and wrongly checked return values.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/local')
| -rw-r--r-- | src/ipcpd/local/main.c | 28 | 
1 files changed, 16 insertions, 12 deletions
| diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c index 9c62c3cc..c0e0b702 100644 --- a/src/ipcpd/local/main.c +++ b/src/ipcpd/local/main.c @@ -72,24 +72,28 @@ static int local_data_init(void)          local_data.flows = fset_create();          if (local_data.flows == NULL) -                return -ENFILE; +                goto fail_fset;          local_data.fq = fqueue_create(); -        if (local_data.fq == NULL) { -                fset_destroy(local_data.flows); -                return -ENOMEM; -        } +        if (local_data.fq == NULL) +                goto fail_fqueue;          local_data.shim_data = shim_data_create(); -        if (local_data.shim_data == NULL) { -                fqueue_destroy(local_data.fq); -                fset_destroy(local_data.flows); -                return -ENOMEM; -        } - -        pthread_rwlock_init(&local_data.lock, NULL); +        if (local_data.shim_data == NULL) +                goto fail_shim_data; +        if (pthread_rwlock_init(&local_data.lock, NULL) < 0) +                goto fail_rwlock_init;          return 0; + + fail_rwlock_init: +        shim_data_destroy(local_data.shim_data); + fail_shim_data: +        fqueue_destroy(local_data.fq); + fail_fqueue: +        fset_destroy(local_data.flows); + fail_fset: +        return -ENOMEM;  }  static void local_data_fini(void){ | 
