[U-Boot] [PATCH v2 12/13] input: Fix zero-sized array
Eugeniu Rosca
roscaeugeniu at gmail.com
Sun Aug 26 23:13:30 UTC 2018
Fix below UBSAN reports, thrown on sandbox:
============================================================
UBSAN: Undefined behaviour in drivers/input/input.c:512:7
variable length array bound value 0 <= 0
============================================================
============================================================
UBSAN: Undefined behaviour in drivers/input/input.c:340:6
variable length array bound value 0 <= 0
============================================================
Inspired from Linux v4.11-rc1 commit 620711944459 ("crypto:
algif_hash - avoid zero-sized array").
Fixes: 9bc590e5119f ("input: Add generic keyboard input handler")
Signed-off-by: Eugeniu Rosca <erosca at de.adit-jv.com>
---
Changes in v2:
- None. Newly pushed.
---
drivers/input/input.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 29620a9e2793..a8fd197883aa 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -337,7 +337,7 @@ static int array_search(int *array, int count, int key)
static int sort_array_by_ordering(int *dest, int count, int *order,
int ocount)
{
- int temp[count];
+ int temp[count ? : 1];
int dest_count;
int same; /* number of elements which are the same */
int i;
@@ -509,7 +509,7 @@ static int input_keycodes_to_ascii(struct input_config *config,
static int _input_send_keycodes(struct input_config *config, int keycode[],
int num_keycodes, bool do_send)
{
- char ch[num_keycodes * ANSI_CHAR_MAX];
+ char ch[(num_keycodes * ANSI_CHAR_MAX) ? : 1];
int count, i, same = 0;
int is_repeat = 0;
unsigned delay_ms;
--
2.18.0
More information about the U-Boot
mailing list