e000e8
diff -up kbd-2.0.4/src/kdmapop.c.orig kbd-2.0.4/src/kdmapop.c
e000e8
--- kbd-2.0.4/src/kdmapop.c.orig	2018-11-05 10:06:05.208744333 +0100
e000e8
+++ kbd-2.0.4/src/kdmapop.c	2018-11-05 10:14:16.149215908 +0100
e000e8
@@ -154,6 +154,7 @@ int getunimap(int fd, struct unimapdesc
e000e8
 		}
e000e8
 		if (ioctl(fd, GIO_UNIMAP, &ud)) {
e000e8
 			perror("GIO_UNIMAP");
e000e8
+			free(ud.entries);
e000e8
 			return -1;
e000e8
 		}
e000e8
 		if (ct != ud.entry_ct)
e000e8
diff -up kbd-2.0.4/src/libkeymap/common.c.orig kbd-2.0.4/src/libkeymap/common.c
e000e8
--- kbd-2.0.4/src/libkeymap/common.c.orig	2016-12-19 16:01:51.000000000 +0100
e000e8
+++ kbd-2.0.4/src/libkeymap/common.c	2018-11-05 10:05:50.207730393 +0100
e000e8
@@ -246,5 +246,8 @@ int lk_free(struct lk_ctx *ctx)
e000e8
 		ctx->key_line = NULL;
e000e8
 	}
e000e8
 
e000e8
+	free(ctx);
e000e8
+	ctx = NULL;
e000e8
+
e000e8
 	return 0;
e000e8
 }
e000e8
diff -up kbd-2.0.4/src/setfont.c.orig kbd-2.0.4/src/setfont.c
e000e8
--- kbd-2.0.4/src/setfont.c.orig	2018-11-05 10:28:01.994027734 +0100
e000e8
+++ kbd-2.0.4/src/setfont.c	2018-11-05 10:35:54.933477039 +0100
e000e8
@@ -327,6 +327,8 @@ do_loadfont(int fd, char *inbuf, int wid
e000e8
 
e000e8
 	if (putfont(fd, buf, fontsize, width, hwunit))
e000e8
 		exit(EX_OSERR);
e000e8
+
e000e8
+	free(buf);
e000e8
 }
e000e8
 
e000e8
 static void