From 20f7f80c236d63d5b6016fca838b2da19c220cd9 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 29 Mar 2021 16:23:28 +1000 Subject: [PATCH] xkbcomp: use memcpy over strncpy to avoid analyzer warnings The target buffer is 7 bytes long, null-termination is optional (as the comment already suggests). Coverity is unhappy about this though so let's use memset and memcpy instead. Signed-off-by: Peter Hutterer --- src/xkbcomp/action.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c index 605f159..e2d4c40 100644 --- a/src/xkbcomp/action.c +++ b/src/xkbcomp/action.c @@ -700,15 +700,16 @@ HandlePrivate(struct xkb_context *ctx, const struct xkb_mod_set *mods, str = xkb_atom_text(ctx, val); len = strlen(str); - if (len < 1 || len > 7) { + if (len < 1 || len > sizeof(act->data)) { log_warn(ctx, - "A private action has 7 data bytes; " - "Illegal data ignored\n"); + "A private action has %ld data bytes; " + "Illegal data ignored\n", sizeof(act->data)); return false; } /* act->data may not be null-terminated, this is intentional */ - strncpy((char *) act->data, str, sizeof(act->data)); + memset(act->data, 0, sizeof(act->data)); + memcpy(act->data, str, len); return true; } else {