text.c: use strncpy instead of strcpy for better security 40/296040/2 accepted/tizen/unified/20230726.163454
authorduna.oh <duna.oh@samsung.com>
Tue, 18 Jul 2023 13:02:05 +0000 (22:02 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 19 Jul 2023 01:18:12 +0000 (01:18 +0000)
Change-Id: Idf6357ae19655f5de30017ad575fdc6b3193cd96

src/text.c

index 60edb03..e85b0eb 100644 (file)
@@ -283,13 +283,13 @@ ModMaskText(struct xkb_context *ctx, const struct xkb_mod_set *mods,
             pos += ret;
     }
 
-    return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf);
+    return strncpy(xkb_context_get_buffer(ctx, pos + 1), buf, pos + 1);
 }
 
 const char *
 LedStateMaskText(struct xkb_context *ctx, enum xkb_state_component mask)
 {
-    char buf[1024];
+    char buf[1024] = {0};
     size_t pos = 0;
 
     if (mask == 0)
@@ -312,13 +312,13 @@ LedStateMaskText(struct xkb_context *ctx, enum xkb_state_component mask)
             pos += ret;
     }
 
-    return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf);
+    return strncpy(xkb_context_get_buffer(ctx, pos + 1), buf, pos + 1);
 }
 
 const char *
 ControlMaskText(struct xkb_context *ctx, enum xkb_action_controls mask)
 {
-    char buf[1024];
+    char buf[1024] = {0};
     size_t pos = 0;
 
     if (mask == 0)
@@ -344,5 +344,5 @@ ControlMaskText(struct xkb_context *ctx, enum xkb_action_controls mask)
             pos += ret;
     }
 
-    return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf);
+    return strncpy(xkb_context_get_buffer(ctx, pos + 1), buf, pos + 1);
 }