resource: system: avoid possible use-after-free in error path 52/271752/4
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 28 Feb 2022 03:42:53 +0000 (12:42 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Mon, 28 Feb 2022 05:10:33 +0000 (05:10 +0000)
In error path, assigned pointer is not cleared after free. Fix
to avoid possible use-after-free with the not cleared pointer.

Change-Id: Idaa222afc9660e68cc5021bd251f21cd47e30b97
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
src/resource/resource-system.c

index 64b05168393259bb4fa74e994ea15758f594a422..2538ed0f30c04ed53423d53796e9e81f37aaf3f7 100644 (file)
@@ -235,7 +235,6 @@ static int system_driver_init(struct resource *res)
        sysdata = calloc(1, sizeof(struct system_resouce_data));
        if (!sysdata)
                return -ENOMEM;
-       res->priv = (void *)sysdata;
 
        ret = kernel_get_possible_cpu_num();
        if (ret < 0) {
@@ -263,6 +262,8 @@ static int system_driver_init(struct resource *res)
                goto err_prev_cpus;
        }
 
+       res->priv = (void *)sysdata;
+
        return 0;
 
 err_prev_cpus:
@@ -270,7 +271,6 @@ err_prev_cpus:
 err:
        sysdata->num_possible_cpus = 0;
        free(sysdata);
-       sysdata = NULL;
 
        return ret;
 }