update to 2.2.0

This commit is contained in:
18302918689 2020-07-28 15:42:59 +08:00
parent 6197d70c5a
commit ff71005818
13 changed files with 99 additions and 238 deletions

View File

@ -1,42 +0,0 @@
From 7e665ed238d01917e40430680b1181c668772756 Mon Sep 17 00:00:00 2001
From: Oleg Bulatov <obulatov@redhat.com>
Date: Wed, 25 Apr 2018 18:19:42 +0200
Subject: [PATCH] Check existance of map before dumping it
---
src/libkeymap/dump.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c
index c4e2513..8bc5d70 100644
--- a/src/libkeymap/dump.c
+++ b/src/libkeymap/dump.c
@@ -520,8 +520,10 @@ no_shorthands:
defs[j] = K(KT_META, KVAL(defs[j - 8]));
for (j = 0; j < keymapnr; j++) {
- if ((j >= 16 && buf[j] != K_HOLE) || (j < 16 && buf[j] != defs[j]))
- goto unexpected;
+ if (lk_map_exists(ctx, j)) {
+ if ((j >= 16 && buf[j] != K_HOLE) || (j < 16 && buf[j] != defs[j]))
+ goto unexpected;
+ }
}
isasexpected = 1;
@@ -577,8 +579,10 @@ no_shorthands:
fprintf(fd, "\n");
for (j = 1; j < keymapnr; j++) {
- if (buf[j] != buf[0] && !zapped[j]) {
- print_bind(ctx, fd, buf[j], i, j, numeric);
+ if (lk_map_exists(ctx, j)) {
+ if (buf[j] != buf[0] && !zapped[j]) {
+ print_bind(ctx, fd, buf[j], i, j, numeric);
+ }
}
}
} else {
--
2.21.0.windows.1

View File

@ -1,28 +0,0 @@
From afb661b80441b6e3fa8cfa3b69f50e4805ebf8be Mon Sep 17 00:00:00 2001
From: Vitezslav Crhonek <vcrhonek@redhat.com>
Date: Mon, 14 May 2018 11:21:45 +0200
Subject: [PATCH] Fix infinite loop of vlock if locked VC is closed
---
src/vlock/auth.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/vlock/auth.c b/src/vlock/auth.c
index 25efb5e..4cbc685 100644
--- a/src/vlock/auth.c
+++ b/src/vlock/auth.c
@@ -140,9 +140,9 @@ int get_password(pam_handle_t *pamh, const char *username, const char *tty)
fflush(stdout);
/*
* EOF encountered on read?
- * If not on VT, check stdin.
+ * Check stdin.
*/
- if (is_vt || isatty(STDIN_FILENO)) {
+ if (isatty(STDIN_FILENO)) {
/* Ignore error. */
sleep(SHORT_DELAY);
break;
--
2.21.0.windows.1

View File

@ -1,43 +0,0 @@
From ca317cb7bd17792ff9f16a3c0eb49e11e963c63f Mon Sep 17 00:00:00 2001
From: luochunsheng <luochunsheng@huawei.com>
Date: Sat, 13 Apr 2019 16:24:11 +0800
Subject: [PATCH] Subject: [PATCH] Fix memory leak
---
src/libkeymap/parser.y | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y
index d9efbf8..50c4f14 100644
--- a/src/libkeymap/parser.y
+++ b/src/libkeymap/parser.y
@@ -11,6 +11,7 @@
*/
%{
#define YY_HEADER_EXPORT_START_CONDITIONS 1
+#define YY_YY_Y_TAB_H_INCLUDED 1
#include "config.h"
#include "nls.h"
@@ -411,7 +412,6 @@ lk_parse_keymap(struct lk_ctx *ctx, lkfile_t *f)
ctx->mod = 0;
- yylex_init(&scanner);
yylex_init_extra(ctx, &scanner);
INFO(ctx, _("Loading %s"), f->pathname);
@@ -424,8 +424,9 @@ lk_parse_keymap(struct lk_ctx *ctx, lkfile_t *f)
rc = 0;
+fail:
stack_pop(ctx, scanner);
- fail: yylex_destroy(scanner);
+ yylex_destroy(scanner);
return rc;
}
--
1.8.3.1

View File

@ -1,28 +0,0 @@
From f7f357ef079b6d185f340e716d7c72a98d82bad0 Mon Sep 17 00:00:00 2001
From: Garry Filakhtov <filakhtov@gmail.com>
Date: Fri, 20 Jul 2018 15:58:56 +0200
Subject: [PATCH] configure.ac: Fix logic of vlock configure switch
Downstream bug report: https://bugs.gentoo.org/661650
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 87eb63c..07098cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -119,7 +119,7 @@ AM_CONDITIONAL(BUILD_LIBKEYMAP, test "$BUILD_LIBKEYMAP" = "yes")
AC_ARG_ENABLE(vlock,
AS_HELP_STRING(--disable-vlock, [do not build vlock]),
- [VLOCK_PROG=no],[VLOCK_PROG=yes])
+ [VLOCK_PROG=$enableval],[VLOCK_PROG=yes])
AM_CONDITIONAL(VLOCK, test "$VLOCK_PROG" = "yes")
if test "$VLOCK_PROG" = "yes"; then
--
2.21.0.windows.1

View File

@ -1,7 +1,7 @@
diff -up kbd-2.0.4/docs/man/man8/kbdrate.8.orig kbd-2.0.4/docs/man/man8/kbdrate.8
--- kbd-2.0.4/docs/man/man8/kbdrate.8.orig 2017-01-11 11:04:50.114831348 +0100
+++ kbd-2.0.4/docs/man/man8/kbdrate.8 2017-01-11 11:05:35.619851252 +0100
@@ -22,7 +22,7 @@ Using
diff -up kbd-2.1.0/docs/man/man8/kbdrate.8.orig kbd-2.1.0/docs/man/man8/kbdrate.8
--- kbd-2.1.0/docs/man/man8/kbdrate.8.orig 2019-06-21 10:08:17.000000000 +0200
+++ kbd-2.1.0/docs/man/man8/kbdrate.8 2019-07-17 10:36:19.876499648 +0200
@@ -19,7 +19,7 @@ Using
without any options will reset the repeat rate to 10.9 characters per second (cps)
and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
@ -10,10 +10,10 @@ diff -up kbd-2.0.4/docs/man/man8/kbdrate.8.orig kbd-2.0.4/docs/man/man8/kbdrate.
.SH OPTIONS
.TP
diff -up kbd-2.0.4/src/kbdrate.c.orig kbd-2.0.4/src/kbdrate.c
--- kbd-2.0.4/src/kbdrate.c.orig 2017-01-11 11:05:10.226840148 +0100
+++ kbd-2.0.4/src/kbdrate.c 2017-01-11 11:05:56.832860537 +0100
@@ -111,9 +111,12 @@ static int valid_delays[] = { 250, 500,
diff -up kbd-2.1.0/src/kbdrate.c.orig kbd-2.1.0/src/kbdrate.c
--- kbd-2.1.0/src/kbdrate.c.orig 2019-07-02 17:44:57.000000000 +0200
+++ kbd-2.1.0/src/kbdrate.c 2019-07-17 11:07:04.732486323 +0200
@@ -114,9 +114,12 @@ static int print_only = 0;
static int
KDKBDREP_ioctl_ok(double rate, int delay, int silent)
{
@ -26,8 +26,8 @@ diff -up kbd-2.0.4/src/kbdrate.c.orig kbd-2.0.4/src/kbdrate.c
* Since 2.4.9 also on i386.
*/
struct my_kbd_repeat kbdrep_s;
@@ -176,6 +179,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
rate, kbdrep_s.delay);
@@ -181,6 +184,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
}
return 1; /* success! */
+#else /* no KDKBDREP or __sparc__ */
@ -35,31 +35,28 @@ diff -up kbd-2.0.4/src/kbdrate.c.orig kbd-2.0.4/src/kbdrate.c
+#endif /* KDKBDREP */
}
#ifndef KIOCSRATE
@@ -226,7 +232,7 @@ sigalrmhandler(int sig __attribute__((un
int main(int argc, char **argv)
{
#ifdef __sparc__
- double rate = 5.0; /* Default rate */
+ double rate = 20.0; /* Default rate */
int delay = 200; /* Default delay */
#else
double rate = 10.9; /* Default rate */
@@ -275,8 +281,9 @@ int main(int argc, char **argv)
if (KIOCSRATE_ioctl_ok(rate, delay, silent)) /* sparc? */
return 0;
#ifdef KIOCSRATE
@@ -251,6 +257,9 @@ ioport_set(double rate, int delay, int s
/* https://wiki.osdev.org/PS/2_Keyboard */
- /* The ioport way */
+ /* The ioport way - will crash on sparc */
+
+#ifndef __sparc__
for (i = 0; i < RATE_COUNT; i++)
for (i = 0; i < (int) RATE_COUNT; i++)
if (rate * 10 >= valid_rates[i]) {
value &= 0x60;
@@ -333,5 +340,6 @@ int main(int argc, char **argv)
@@ -304,11 +313,12 @@ ioport_set(double rate, int delay, int s
valid_rates[value & 0x1f] / 10.0,
valid_delays[(value & 0x60) >> 5]);
+#endif
return EXIT_SUCCESS;
return 1;
}
#ifdef __sparc__
-double rate = 5.0; /* Default rate */
+double rate = 20.0; /* Default rate */
int delay = 200; /* Default delay */
#else
double rate = 10.9; /* Default rate */

View File

@ -1,18 +1,18 @@
diff -up kbd-2.0.4/src/loadkeys.c.orig kbd-2.0.4/src/loadkeys.c
--- kbd-2.0.4/src/loadkeys.c.orig 2017-01-11 11:14:48.308093019 +0100
+++ kbd-2.0.4/src/loadkeys.c 2017-01-11 11:15:18.018106020 +0100
@@ -27,7 +27,7 @@
diff -up kbd-2.1.0/src/loadkeys.c.orig kbd-2.1.0/src/loadkeys.c
--- kbd-2.1.0/src/loadkeys.c.orig 2019-07-15 10:57:18.000000000 +0200
+++ kbd-2.1.0/src/loadkeys.c 2019-07-17 14:34:51.224525616 +0200
@@ -24,7 +24,7 @@
#include "paths.h"
#include "keymap.h"
static const char *progname = NULL;
-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
+static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 };
static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
static void __attribute__((noreturn))
diff -up kbd-2.0.4/src/paths.h.orig kbd-2.0.4/src/paths.h
--- kbd-2.0.4/src/paths.h.orig 2017-01-11 11:15:40.404115812 +0100
+++ kbd-2.0.4/src/paths.h 2017-01-11 11:15:59.730124274 +0100
diff -up kbd-2.1.0/src/paths.h.orig kbd-2.1.0/src/paths.h
--- kbd-2.1.0/src/paths.h.orig 2019-05-07 11:21:10.000000000 +0200
+++ kbd-2.1.0/src/paths.h 2019-07-17 14:35:13.870574558 +0200
@@ -5,6 +5,8 @@
* The following five subdirectories are defined:
*/

View File

@ -0,0 +1,23 @@
diff -up kbd-2.1.0/src/kdmapop.c.orig kbd-2.1.0/src/kdmapop.c
--- kbd-2.1.0/src/kdmapop.c.orig 2019-05-07 11:21:10.000000000 +0200
+++ kbd-2.1.0/src/kdmapop.c 2019-07-17 14:38:15.799967669 +0200
@@ -155,6 +155,7 @@ int getunimap(int fd, struct unimapdesc
}
if (ioctl(fd, GIO_UNIMAP, &ud)) {
perror("GIO_UNIMAP");
+ free(ud.entries);
return -1;
}
if (ct != ud.entry_ct)
diff -up kbd-2.1.0/src/setfont.c.orig kbd-2.1.0/src/setfont.c
--- kbd-2.1.0/src/setfont.c.orig 2019-06-25 18:14:32.000000000 +0200
+++ kbd-2.1.0/src/setfont.c 2019-07-17 14:39:57.928188355 +0200
@@ -323,6 +323,8 @@ do_loadfont(int fd, char *inbuf, int wid
if (putfont(fd, buf, fontsize, width, hwunit))
exit(EX_OSERR);
+
+ free(buf);
}
static void

Binary file not shown.

16
kbd-2.2.0-fix-flags.patch Normal file
View File

@ -0,0 +1,16 @@
diff -up kbd-2.2.0/configure.ac.orig kbd-2.2.0/configure.ac
--- kbd-2.2.0/configure.ac.orig 2019-08-28 11:07:00.787173606 +0200
+++ kbd-2.2.0/configure.ac 2019-08-28 11:08:07.217317151 +0200
@@ -72,9 +72,9 @@ if test "$enable_code_coverage" = yes; t
fi
case "$GCC,$ac_cv_prog_cc_g" in
- yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE" ;;
- yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE" ;;
- ,yes) CFLAGS="-g" ;;
+ yes,yes) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
+ yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
+ ,yes) CFLAGS="$CFLAGS" ;;
esac
CC_CHECK_CFLAGS_APPEND([\

View File

@ -0,0 +1,14 @@
diff -up kbd-2.2.0/src/libkeymap/analyze.l.orig kbd-2.2.0/src/libkeymap/analyze.l
--- kbd-2.2.0/src/libkeymap/analyze.l.orig 2019-06-25 11:41:55.000000000 +0200
+++ kbd-2.2.0/src/libkeymap/analyze.l 2019-10-17 08:39:01.924605478 +0200
@@ -463,7 +463,10 @@ To to|To|TO
strerror_r(errno, buf, sizeof(buf));
+ /* workaround -Werror=format-security error
ERR(yyextra, buf);
+ */
+ ERR(yyextra, _("unknown error"));
return(ERROR);
}

BIN
kbd-2.2.0.tar.xz Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
Name: kbd
Version: 2.0.4
Release: 11
Version: 2.2.0
Release: 1
Summary: Tools for managing Linux console(keyboard, virtual terminals, etc.)
License: GPLv2+
URL: https://www.%{name}-project.org/
@ -20,20 +20,16 @@ Patch3: %{name}-1.15.3-dumpkeys-man.patch
Patch4: %{name}-1.15.5-sg-decimal-separator.patch
Patch5: %{name}-1.15.5-loadkeys-search-path.patch
Patch6: %{name}-2.0.2-unicode-start-font.patch
Patch6000: Check-existance-of-map-before-dumping-it.patch
Patch6001: Fix-infinite-loop-of-vlock-if-locked-VC-is-closed.patch
Patch6002: setmetamode-use-unsigned-int-type-for-KDGKBMETA-KDSK.patch
Patch6003: Fix-memory-leak.patch
Patch6004: configure.ac-Fix-logic-of-vlock-configure-switch.patch
Patch7: %{name}-2.0.4-covscan-fixes.patch
Patch8: %{name}-2.2.0-fix-flags.patch
Patch9: %{name}-2.2.0-format-security.patch
BuildRequires: bison flex gettext pam-devel check-devel
BuildRequires: gcc console-setup xkeyboard-config
BuildRequires: gcc console-setup xkeyboard-config automake
Requires: %{name}-misc = %{version}-%{release}
Requires: %{name}-legacy = %{version}-%{release}
Provides: vlock = %{version}
Conflicts: vlock <= 1.3
Obsoletes: vlock
%description
The %{name} project contains tools for managing Linux console ,including
@ -69,11 +65,10 @@ cp -fp %{SOURCE6} .
%patch4 -p1 -b .sg-decimal-separator
%patch5 -p1 -b .loadkeys-search-path
%patch6 -p1 -b .unicode-start-font
%patch6000 -p1
%patch6001 -p1
%patch6002 -p1
%patch6003 -p1
%patch6004 -p1
%patch7 -p1 -b .covscan-fixes.patch
%patch8 -p1 -b .fix-flags.patch
%patch9 -p1 -b .format-security.patch
autoconf
pushd data/keymaps/i386
cp qwerty/pt-latin9.map qwerty/pt.map
@ -84,7 +79,6 @@ cp azerty/fr-latin9.map azerty/fr.map
cp azerty/fr-latin9.map azerty/fr-latin0.map
mv dvorak/no.map dvorak/no-dvorak.map
mv fgGIod/trf.map fgGIod/trf-fgGIod.map
mv olpc/es.map olpc/es-olpc.map
mv olpc/pt.map olpc/pt-olpc.map
@ -179,6 +173,9 @@ gzip %{buildroot}/lib/%{name}/keymaps/xkb/cz.map
%{_mandir}/man8/*.8.gz
%changelog
* Tue Jul 28 2020 hanhui <hanhui15@huawei.com> - 2.2.0-1
- update to 2.2.0
* Wed Jan 22 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.0.4-11
- Type:bugfix
- Id:NA

View File

@ -1,45 +0,0 @@
From 6613abc26a853293c12f4e146a27606f02c8dd03 Mon Sep 17 00:00:00 2001
From: Andreas Henriksson <andreas@fatal.se>
Date: Mon, 28 May 2018 21:19:22 +0200
Subject: [PATCH] setmetamode: use unsigned int type for KDGKBMETA / KDSKBMETA
alsauser@pragmasoft.com reported that he detected a stack smash
and analyzed the problem as allocating too little space for
the resulting put_user after calling ioctl KDGKBMETA.
The ometa variable should be defined as unsigned int.
While at it and for correctness, also nmeta and thus the
val member of the struct meta where changed to unsigned
int as it seems the kernel wants to take this type
(but should be harmless to use char).
Original bug report at https://bugs.debian.org/872623
---
src/setmetamode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/setmetamode.c b/src/setmetamode.c
index 8d75b94..adec0e9 100644
--- a/src/setmetamode.c
+++ b/src/setmetamode.c
@@ -50,7 +50,7 @@ report(int meta)
struct meta {
char *name;
- int val;
+ unsigned int val;
} metas[] = {
{ "metabit", K_METABIT },
{ "meta", K_METABIT },
@@ -64,7 +64,7 @@ struct meta {
int main(int argc, char **argv)
{
- char ometa, nmeta;
+ unsigned int ometa, nmeta;
struct meta *mp;
set_progname(argv[0]);
--
2.21.0.windows.1