From c994c7763b390d28ac92223eaa6176a136ad7b58 Mon Sep 17 00:00:00 2001 From: Alexey Gladkov Date: Thu, 26 Sep 2019 11:24:48 +0200 Subject: [PATCH] libkeymap: Fix the compatibility with the busybox's loadkmap Signed-off-by: Alexey Gladkov --- src/libkeymap/dump.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c index 83ac351..8531b5a 100644 --- a/src/libkeymap/dump.c +++ b/src/libkeymap/dump.c @@ -72,9 +72,14 @@ int lk_dump_bkeymap(struct lk_ctx *ctx, FILE *fd) continue; for (j = 0; j < NR_KEYS / 2; j++) { - int v = lk_get_key(ctx, i, j); + int value = lk_get_key(ctx, i, j); - if (fwrite(&v, sizeof(v), 1, fd) != 1) + if (value < 0 || value > USHRT_MAX) { + ERR(ctx, _("can not bind key %d to value %d because it is too large"), j, value); + goto fail; + } + + if (fwrite(&value, sizeof(unsigned short), 1, fd) != 1) goto fail; } }