pass: hal: Fix bug in resource name generation 94/112794/2
authorWook Song <wook16.song@samsung.com>
Thu, 2 Feb 2017 11:47:01 +0000 (20:47 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 3 Feb 2017 00:54:59 +0000 (16:54 -0800)
This patch fixes a bug in the procedure of generating resource name.

Change-Id: I01505b7da21e32c843399317782b7fdd9aa54b90
Signed-off-by: Wook Song <wook16.song@samsung.com>
src/pass/pass-hal.c

index 085f249..88c1d9a 100644 (file)
@@ -379,6 +379,7 @@ int pass_get_resource(struct pass *pass)
 {
        struct pass_resource_info *info;
        int i, ret;
+       int len;
 
        for (i = 0; i < pass->num_resources; i++) {
                struct pass_resource *pass_res = &pass->res[i];
@@ -388,22 +389,24 @@ int pass_get_resource(struct pass *pass)
 
                switch (res_type) {
                case PASS_RESOURCE_CPU_ID:
-                       strncpy(name, PASS_RESOURCE_CPU_NAME,
-                                       strlen(PASS_RESOURCE_CPU_NAME));
+                       len = strlen(PASS_RESOURCE_CPU_NAME);
+                       strncpy(name, PASS_RESOURCE_CPU_NAME, len);
                        break;
                case PASS_RESOURCE_BUS_ID:
-                       strncpy(name, PASS_RESOURCE_BUS_NAME,
-                                       strlen(PASS_RESOURCE_BUS_NAME));
+                       len = strlen(PASS_RESOURCE_BUS_NAME);
+                       strncpy(name, PASS_RESOURCE_BUS_NAME, len);
                        break;
                case PASS_RESOURCE_GPU_ID:
-                       strncpy(name, PASS_RESOURCE_GPU_NAME,
-                                       strlen(PASS_RESOURCE_GPU_NAME));
+                       len = strlen(PASS_RESOURCE_GPU_NAME);
+                       strncpy(name, PASS_RESOURCE_GPU_NAME, len);
                        break;
                default:
                        _E("Unsupported resource type (type: %d)\n", res_type);
                        return -EINVAL;
                };
 
+               name[len] = '\0';
+
                ret = pass_get_hw_info(name,
                                (const struct pass_resource_info **)&info);
                if (ret < 0) {