char *m is allocated by xstrdup but not free() before return, will cause a memory leak Signed-off-by: Wu Guanghao <wuguanghao3@xxxxxxxxxx> Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@xxxxxxxxxxxxxxx> --- util.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/util.c b/util.c index 38f0420e..2e0f1de7 100644 --- a/util.c +++ b/util.c @@ -427,8 +427,11 @@ int parse_layout_faulty(char *layout) int ln = strcspn(layout, "0123456789"); char *m = xstrdup(layout); int mode; + m[ln] = 0; mode = map_name(faultylayout, m); + free(m); + if (mode == UnSet) return -1; -- 2.27.0