Fix SVACE defect (DEREF_OF_NULL.RET.ALLOC) 00/253800/1 accepted/tizen_unified tizen accepted/tizen/unified/20210219.095252 submit/tizen/20210219.045921
authorSeungbae Shin <seungbae.shin@samsung.com>
Thu, 18 Feb 2021 06:16:02 +0000 (15:16 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Thu, 18 Feb 2021 06:16:02 +0000 (15:16 +0900)
[Version] 0.2.25
[Issue Type] Svace

Change-Id: I899fd0eb5d104d2f0cf006b6853ae17c090daadc

packaging/audio-hal-wm5110.spec
tizen-audio-impl-ucm.c

index 13bc889..ee69b58 100644 (file)
@@ -1,6 +1,6 @@
 Name:       audio-hal-wm5110
 Summary:    TIZEN Audio HAL for WM5110
-Version:    0.2.24
+Version:    0.2.25
 Release:    0
 VCS:        adaptation/samsung_exynos/audio-hal-wm5110#a568942051241d60e37c6738466a2a5058f260c0
 Group:      System/Libraries
index 1dfe50a..5b06208 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <assert.h>
 #ifdef ALSA_UCM_DEBUG_TIME
 #include <sys/time.h>
 #include <time.h>
@@ -170,28 +171,20 @@ audio_return_t _ucm_set_use_case(audio_hal_t *ah, const char *verb, const char *
         AUDIO_LOG_DEBUG("current verb and new verb is same. No need to change verb, disable devices explicitely");
 
         if (old_dev_count > 0) {
-            dis_dev_list = (const char **)malloc(sizeof(const char *) * old_dev_count);
-            for (i = 0; i < old_dev_count; i++) {
-                dis_dev_list[i] = NULL;
-            }
+            dis_dev_list = (const char **)calloc(old_dev_count, sizeof(const char *));
+            assert(dis_dev_list);
         }
         if (dev_count > 0) {
-            ena_dev_list = (const char **)malloc(sizeof(const char *) * dev_count);
-            for (i = 0; i < dev_count; i++) {
-                ena_dev_list[i] = NULL;
-            }
+            ena_dev_list = (const char **)calloc(dev_count, sizeof(const char *));
+            assert(ena_dev_list);
         }
         if (old_mod_count > 0) {
-            dis_mod_list = (const char **)malloc(sizeof(const char *) * old_mod_count);
-            for (i = 0; i < old_mod_count; i++) {
-                dis_mod_list[i] = NULL;
-            }
+            dis_mod_list = (const char **)calloc(old_mod_count, sizeof(const char *));
+            assert(dis_mod_list);
         }
         if (mod_count > 0) {
-            ena_mod_list = (const char **)malloc(sizeof(const char *) * mod_count);
-            for (i = 0; i < mod_count; i++) {
-                ena_mod_list[i] = NULL;
-            }
+            ena_mod_list = (const char **)calloc(mod_count, sizeof(const char *));
+            assert(ena_mod_list);
         }
 
         /* update disable modifiers list which are not present in new modifier list */
@@ -378,16 +371,12 @@ audio_return_t _ucm_set_devices(audio_hal_t *ah, const char *verb, const char *d
         AUDIO_LOG_DEBUG("current verb and new verb is same. No need to change verb, disable devices explicitely");
 
         if (old_dev_count > 0) {
-            dis_dev_list = (const char **)malloc(sizeof(const char *) * old_dev_count);
-            for (i = 0; i < old_dev_count; i++) {
-                dis_dev_list[i] = NULL;
-            }
+            dis_dev_list = (const char **)calloc(old_dev_count, sizeof(const char *));
+            assert(dis_dev_list);
         }
         if (dev_count > 0) {
-            ena_dev_list = (const char **)malloc(sizeof(const char *) * dev_count);
-            for (i = 0; i < dev_count; i++) {
-                ena_dev_list[i] = NULL;
-            }
+            ena_dev_list = (const char **)calloc(dev_count, sizeof(const char *));
+            assert(ena_dev_list);
         }
 
         /* update disable devices list which are not present in new device list */
@@ -513,16 +502,12 @@ audio_return_t _ucm_set_modifiers(audio_hal_t *ah, const char *verb, const char
         AUDIO_LOG_DEBUG("current verb and new verb is same. No need to change verb, disable devices explicitely");
 
         if (old_mod_count > 0) {
-            dis_mod_list = (const char **)malloc(sizeof(const char *) * old_mod_count);
-            for (i = 0; i < old_mod_count; i++) {
-                dis_mod_list[i] = NULL;
-            }
+            dis_mod_list = (const char **)calloc(old_mod_count, sizeof(const char *));
+            assert(dis_mod_list);
         }
         if (mod_count > 0) {
-            ena_mod_list = (const char **)malloc(sizeof(const char *) * mod_count);
-            for (i = 0; i < mod_count; i++) {
-                ena_mod_list[i] = NULL;
-            }
+            ena_mod_list = (const char **)calloc(mod_count, sizeof(const char *));
+            assert(ena_mod_list);
         }
 
         /* update disable modifiers list which are not present in new modifier list */
@@ -648,4 +633,4 @@ audio_return_t _ucm_reset_use_case(audio_hal_t *ah)
     }
 
     return ret;
-}
\ No newline at end of file
+}