From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] beep: Update to version 1.4.12
Date: Mon, 18 Nov 2024 20:00:44 +0000 [thread overview]
Message-ID: <0FD1129F-A26C-42C3-B9E9-3C2CD321CB6B@ipfire.org> (raw)
In-Reply-To: <20241113174147.2632974-1-adolf.belka@ipfire.org>
[-- Attachment #1: Type: text/plain, Size: 25798 bytes --]
Hello Adolf,
This is amazing to see that there is actually still development for beep. Seeing this patch has made me laugh.
Reviewed-by: Michael Tremer <michael.tremer(a)ipfire.org>
-Michael
> On 13 Nov 2024, at 17:41, Adolf Belka <adolf.belka(a)ipfire.org> wrote:
>
> - Update from version 1.3 (2010) to version 1.4.12
> - The originator of beep released version 1.3 in 2010 but the last commit after that was
> in 2013. Since then nothing has happened.
> - Most of the patches used in IPFire with beep-1.3 were created by Hans Ulrich Niedermann
> and in 2019 he forked the original beep repository and has been doing updates since
> then. The last release was in 2022 and the last commit in April 2024.
> - This patch removes all the previous patches as they are built in to the current
> tarball.
> - Changelog
> 1.4.12
> Document how to override and disable packaged udev rules.
> Changed the build system to be closer to the GNU makefile conventions, i.e.
> only one compiler/toolchain per build
> default installation is to prefix=/usr/local instead of prefix=/usr
> use GNU style docdir= instead of RPM spec file style pkgdocdir=
> etc.
> Still not using a configure script, though, as that is complex. The
> user writing a local.mk with some definitions covers everyone wanting
> to use the same settings across make invocations, though.
> 1.4.11
> Install the contrib/morse/* scripts just like the failure-beeps.
> missed to be done in release 1.4.10
> 1.4.10
> Rename CREDITS to CREDITS.md and CHANGELOG to NEWS.md and
> reformatted them to markdown.
> Fix some __VA_ARGS__ problems with some C language compiler
> options.
> contrib/morse/: Add both perl and tr+sed script options to
> have beep produce morse code by converting the output of the
> morse utility from the BSD Games package to a beep command
> line.
> If built without any drivers, running beep will now complain and
> abort instead of silently (pun intended) just not beeping.
> Stop using Travis CI. Use GitHub Actions workflows for CI instead.
> Skip test cases using PC speaker hardware if absent (e.g. on a VM)
> Improved documentation (e.g. alsamixer requirement, loading pcspkr)
> 1.4.9
> Mention default values in the beep(1) man page and the beep --help output.
> 1.4.8
> At build time, avoid error messages related to maybe building without git
> installed, or from a tarball instead of a git source tree.
> Improve issue-6-benchmark report to help people with solving issue #6.
> 1.4.7
> Install contrib scripts for both successfully and failing sounding beeps
> as package documentation.
> Install man page uncompressed, so packagers can use their favoured
> compression format.
> 1.4.6
> Use va_copy() macro in function with va_list parameter to avoid possible bug
> Use BEEP_LOG_LEVEL environment variable for default log level
> 1.4.4
> Remove udev/rules.d/ and modprobe.d/ example files to force packagers to
> re-read PACKAGING.md and PERMISSIONS.md
> Rewritten PERMISSIONS.md and INSTALL.md, adapting README.md and PACKAGING.md
> and beep(1) (i.e. beep.1.in) for consistency
> Allow beep to run as non-root, even if SUDO_* env variables are present
> Fix newline escaping when generating beep-usage.c
> By default, use plain -g instead of -gstabs
> Ensure the gcc used actually supports the default flags in CFLAGS_gcc
> 1.4.3
> Stop compiling with -fcf-protection in CFLAGS_gcc if the platform does not
> support it (such as the Raspberry Pi ARMs).
> 1.4.2
> Improved beep(1) man page and --help output
> Cleaned signal handlers of all function calls
> Use beep driver infrastructure (console and evdev drivers)
> Abort on unhandled command line parameters
> Use nanosleep(2) instead of usleep(3)
> 1.4.1
> Safer signal handlers (safe_error_exit() without global variables).
> Reduce accepted range of input numbers. 5 minute beeps should still be
> enough.
> 1.4.0
> The beep-1.4.0 release tries to revive the beep software. There have been
> no commits to the former upstream since 2013, and with the two CVEs in
> 2018 that needed to change.
> Packagers beware: Please read PACKAGING.md for the very different (and
> much better) new way of device access.
> First and foremost, beep-1.4.0 fixes CVE-2018-0492 and CVE-2018-1000532.
> The beep command now by default tries
> /dev/input/by-path/platform-pcspkr-event-spkr which allows arbitrary
> users beep access by allowing those arbitrary users file write access.
> The procedures to do that are now well documented in INSTALL.md and
> PERMISSIONS.md. There is no need for setuid-root or sudo any more, and
> due to the experiences with the two 2018 CVEs, beep will even refuse to
> run when it detects being run setuid or via sudo.
> A few smaller things have also been changed. Quoting the CHANGELOG:
> Fix CVE-2018-1000532 External Control of File Name or Path
> vulnerability in --device option
> Fix CVE-2018-0492 race condition that allows local privilege escalation
> Make /dev/input/by-path/platform-pcspkr-event-spkr the default device
> to use as the system administrator can allow access to that without
> needing any priviledge escalation risks via setuid or sudo.
> Adapt --help output, beep.1 man page, README.md, INSTALL.md to reflect
> the new device use.
> Add basic suite of tests.
> Constrained a few integers to avoid integer overflows.
> Only issue fallback '\a' type beeps if that '\a' actually goes to a
> tty device which can actually beep
> Stop promoting floating point frequencies which no Kernel API can even
> use
>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> config/rootfiles/common/beep | 12 ++
> lfs/beep | 19 +--
> src/patches/beep/0001-Fixed-Makefile.patch | 44 -------
> .../beep/0002-Add-more-error-detection.patch | 44 -------
> ...-catch-SIGTERM-for-stopping-the-beep.patch | 32 -----
> ...all-more-user-and-packaging-friendly.patch | 85 -------------
> ...ve-file-modification-time-on-install.patch | 32 -----
> .../0007-Fix-identation-if-brace-error.patch | 41 ------
> ...ly-CVE-2018-0492-from-Debian-package.patch | 117 ------------------
> 9 files changed, 17 insertions(+), 409 deletions(-)
> delete mode 100644 src/patches/beep/0001-Fixed-Makefile.patch
> delete mode 100644 src/patches/beep/0002-Add-more-error-detection.patch
> delete mode 100644 src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> delete mode 100644 src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> delete mode 100644 src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> delete mode 100644 src/patches/beep/0007-Fix-identation-if-brace-error.patch
> delete mode 100644 src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
>
> diff --git a/config/rootfiles/common/beep b/config/rootfiles/common/beep
> index a47db2767..d20101cd2 100644
> --- a/config/rootfiles/common/beep
> +++ b/config/rootfiles/common/beep
> @@ -1 +1,13 @@
> usr/bin/beep
> +#usr/share/doc/beep
> +#usr/share/doc/beep/COPYING
> +#usr/share/doc/beep/CREDITS.md
> +#usr/share/doc/beep/NEWS.md
> +#usr/share/doc/beep/PERMISSIONS.md
> +#usr/share/doc/beep/README.md
> +#usr/share/doc/beep/contrib
> +#usr/share/doc/beep/contrib/failure-beeps
> +#usr/share/doc/beep/contrib/morse2beep.pl
> +#usr/share/doc/beep/contrib/morse2beep.sed
> +#usr/share/doc/beep/contrib/success-beeps
> +#usr/share/man/man1/beep.1
> diff --git a/lfs/beep b/lfs/beep
> index 8ab9774ab..6c3d50109 100644
> --- a/lfs/beep
> +++ b/lfs/beep
> @@ -1,7 +1,7 @@
> ###############################################################################
> # #
> # IPFire.org - A linux based firewall #
> -# Copyright (C) 2007-2018 IPFire Team <info(a)ipfire.org> #
> +# Copyright (C) 2007-2024 IPFire Team <info(a)ipfire.org> #
> # #
> # This program is free software: you can redistribute it and/or modify #
> # it under the terms of the GNU General Public License as published by #
> @@ -24,7 +24,7 @@
>
> include Config
>
> -VER = 1.3
> +VER = 1.4.12
>
> THISAPP = beep-$(VER)
> DL_FILE = $(THISAPP).tar.gz
> @@ -40,7 +40,7 @@ objects = $(DL_FILE)
>
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>
> -$(DL_FILE)_BLAKE2 = 4f9cf12f6983eeb53502fd85e5e1d428e1c1af481f8f424f6ae18cbe104462e8fdcc96670a72daa8a8a0d1430d00824d8795b4db53437e7bb7320cddfd84cfd3
> +$(DL_FILE)_BLAKE2 = 06f21cf3c40389acca50e6e420af4e738b7484e096bb689345fedb37684b15733dbb38e8a5d0d360f23e020cebe9ba321984ee43f41b0ad980648414ddbb9375
>
> install : $(TARGET)
>
> @@ -70,16 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) :
> $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> @$(PREBUILD)
> @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
> -
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0001-Fixed-Makefile.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0002-Add-more-error-detection.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> -
> - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
> - cd $(DIR_APP) && install -m 0755 beep /usr/bin
> + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) prefix=/usr
> + cd $(DIR_APP) && make prefix=/usr install
> @rm -rf $(DIR_APP)
> @$(POSTBUILD)
> diff --git a/src/patches/beep/0001-Fixed-Makefile.patch b/src/patches/beep/0001-Fixed-Makefile.patch
> deleted file mode 100644
> index 6b35ab0a9..000000000
> --- a/src/patches/beep/0001-Fixed-Makefile.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From 8b32b8b088be1f29e8bfea57a97b9bfaa76ec8ee Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco(a)gmail.com>
> -Date: Wed, 23 Nov 2011 10:39:53 +1300
> -Subject: [PATCH] Fixed Makefile
> -
> -* Use /usr/share/man (see http://www.pathname.com/fhs/2.2/fhs-4.11.html#4.11.5)
> -
> -* Removed trailing spaces
> -
> -* Added optimization flag (must beep FAST!!!)
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index cc359c4..0f4f810 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,19 @@
> - CC=gcc
> --FLAGS=-Wall
> -+FLAGS=-Wall -O2
> - EXEC_NAME=beep
> - INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/man/man1
> -+MAN_DIR=/usr/share/man/man1
> -
> - default : beep
> -
> --clean :
> -+clean :
> - rm ${EXEC_NAME}
> -
> - beep : beep.c
> - ${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> -
> --install :
> -+install :
> - cp ${EXEC_NAME} ${INSTALL_DIR}
> - # rm -f /usr/man/man1/beep.1.bz2
> - cp ${MAN_FILE} ${MAN_DIR}
> ---
> -2.7.5
> diff --git a/src/patches/beep/0002-Add-more-error-detection.patch b/src/patches/beep/0002-Add-more-error-detection.patch
> deleted file mode 100644
> index 733af9b15..000000000
> --- a/src/patches/beep/0002-Add-more-error-detection.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From d3aee6c489852108c91dc22abcacff364e9429f2 Mon Sep 17 00:00:00 2001
> -From: Chris Wong <chrisyco(a)gmail.com>
> -Date: Wed, 23 Nov 2011 11:34:55 +1300
> -Subject: [PATCH] Add more error detection
> -
> ----
> - beep.c | 15 +++++++++------
> - 1 file changed, 9 insertions(+), 6 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..14fac3e 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -98,11 +98,11 @@ char *console_device = NULL;
> -
> -
> - void do_beep(int freq) {
> -- if (console_type == BEEP_TYPE_CONSOLE) {
> -- if(ioctl(console_fd, KIOCSOUND, freq != 0
> -- ? (int)(CLOCK_TICK_RATE/freq)
> -- : freq) < 0) {
> -- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
> -+ int period = (freq != 0 ? (int)(CLOCK_TICK_RATE/freq) : freq);
> -+
> -+ if(console_type == BEEP_TYPE_CONSOLE) {
> -+ if(ioctl(console_fd, KIOCSOUND, period) < 0) {
> -+ putchar('\a'); /* Output the only beep we can, in an effort to fall back on usefulness */
> - perror("ioctl");
> - }
> - } else {
> -@@ -113,7 +113,10 @@ void do_beep(int freq) {
> - e.code = SND_TONE;
> - e.value = freq;
> -
> -- write(console_fd, &e, sizeof(struct input_event));
> -+ if(write(console_fd, &e, sizeof(struct input_event)) < 0) {
> -+ putchar('\a'); /* See above */
> -+ perror("write");
> -+ }
> - }
> - }
> -
> ---
> -2.7.5
> diff --git a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch b/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> deleted file mode 100644
> index c11061e6a..000000000
> --- a/src/patches/beep/0004-also-catch-SIGTERM-for-stopping-the-beep.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From e1320c1da52ca92aa68b4224f9532982184fbe00 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?J=C3=A9r=C3=B4me?= <jerome(a)jolimont.fr>
> -Date: Thu, 7 Feb 2013 12:54:53 +0100
> -Subject: [PATCH] also catch SIGTERM for stopping the beep
> -
> -Signed-off-by: Gerfried Fuchs <rhonda(a)deb.at>
> ----
> - beep.c | 2 ++
> - 1 file changed, 2 insertions(+)
> -
> -diff --git a/beep.c b/beep.c
> -index 452fc08..9cb63bf 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -130,6 +130,7 @@ void handle_signal(int signum) {
> -
> - switch(signum) {
> - case SIGINT:
> -+ case SIGTERM:
> - if(console_fd >= 0) {
> - /* Kill the sound, quit gracefully */
> - do_beep(0);
> -@@ -324,6 +325,7 @@ int main(int argc, char **argv) {
> - parms->next = NULL;
> -
> - signal(SIGINT, handle_signal);
> -+ signal(SIGTERM, handle_signal);
> - parse_command_line(argc, argv, parms);
> -
> - /* this outermost while loop handles the possibility that -n/--new has been
> ---
> -2.7.5
> diff --git a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch b/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> deleted file mode 100644
> index 9e2b481b3..000000000
> --- a/src/patches/beep/0005-Make-build-install-more-user-and-packaging-friendly.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 947a7e332908dcba1c7e523fbdc927d39ee6adb1 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun(a)n-dimensional.de>
> -Date: Tue, 19 Nov 2013 23:40:50 +0100
> -Subject: [PATCH] Make build/install more user and packaging friendly
> -
> -Make the build and install more user and packaging friendly
> -by introducing the following features in the Makefile:
> -
> - * Honor the $(CFLAGS) set when calling make.
> -
> - * Prefix all install locations with $(DESTDIR) for
> - easy package building.
> -
> - * Use GNU Makefile conventions for defining installation
> - directories. This means $(bindir) and $(man1dir)
> - instead of the former $(INSTALL_DIR) and $(MAN_DIR).
> -
> - * Use install(1) for installing files and directories
> - so that permissions can be set properly.
> -
> - * Stop "make clean" failing when it has nothing to do.
> -
> - * Add 'uninstall' make target.
> -
> - * Make 'install' target build executable if necessary.
> ----
> - Makefile | 40 +++++++++++++++++++++++++++++-----------
> - 1 file changed, 29 insertions(+), 11 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 0f4f810..942a7a5 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -1,19 +1,37 @@
> - CC=gcc
> - FLAGS=-Wall -O2
> -+
> -+INSTALL=install
> -+
> - EXEC_NAME=beep
> --INSTALL_DIR=/usr/bin
> - MAN_FILE=beep.1.gz
> --MAN_DIR=/usr/share/man/man1
> -
> --default : beep
> -+# Use GNU makefile conventions for directory names with one notable
> -+# exception: prefix is not /usr/local in order to keep the default
> -+# installation location for beep.
> -+prefix=/usr
> -+exec_prefix=$(prefix)
> -+bindir=$(exec_prefix)/bin
> -+datarootdir=$(prefix)/share
> -+mandir=$(datarootdir)/man
> -+man1dir=$(mandir)/man1
> -+
> -+.PHONY: all
> -+all: $(EXEC_NAME)
> -+
> -+.PHONY: clean
> -+clean:
> -+ rm -f $(EXEC_NAME)
> -
> --clean :
> -- rm ${EXEC_NAME}
> -+$(EXEC_NAME): beep.c
> -+ $(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> -
> --beep : beep.c
> -- ${CC} ${FLAGS} -o ${EXEC_NAME} beep.c
> -+install: all
> -+ $(INSTALL) -m 0755 -d $(DESTDIR)$(bindir)
> -+ $(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+ $(INSTALL) -m 0755 -d $(DESTDIR)$(man1dir)
> -+ $(INSTALL) -m 0644 $(MAN_FILE) $(DESTDIR)$(man1dir)/
> -
> --install :
> -- cp ${EXEC_NAME} ${INSTALL_DIR}
> -- # rm -f /usr/man/man1/beep.1.bz2
> -- cp ${MAN_FILE} ${MAN_DIR}
> -+uninstall:
> -+ rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> -+ rm -f $(DESTDIR)$(man1dir)/$(MAN_FILE)
> ---
> -2.7.5
> -
> diff --git a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch b/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> deleted file mode 100644
> index fe844e6f1..000000000
> --- a/src/patches/beep/0006-Preserve-file-modification-time-on-install.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From 4622dd15dc12dab47a0381a8a7188f0f0421e01d Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun(a)n-dimensional.de>
> -Date: Wed, 20 Nov 2013 00:00:54 +0100
> -Subject: [PATCH] Preserve file modification time on install
> -
> -Add -p option to install(1) invocation in order to preserve
> -the timestamps of the files being installed.
> ----
> - Makefile | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 942a7a5..290b8a4 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -27,10 +27,10 @@ $(EXEC_NAME): beep.c
> - $(CC) $(FLAGS) $(CFLAGS) -o $(EXEC_NAME) beep.c
> -
> - install: all
> -- $(INSTALL) -m 0755 -d $(DESTDIR)$(bindir)
> -- $(INSTALL) -m 0755 $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -- $(INSTALL) -m 0755 -d $(DESTDIR)$(man1dir)
> -- $(INSTALL) -m 0644 $(MAN_FILE) $(DESTDIR)$(man1dir)/
> -+ $(INSTALL) -m 0755 -d $(DESTDIR)$(bindir)
> -+ $(INSTALL) -m 0755 -p $(EXEC_NAME) $(DESTDIR)$(bindir)/
> -+ $(INSTALL) -m 0755 -d $(DESTDIR)$(man1dir)
> -+ $(INSTALL) -m 0644 -p $(MAN_FILE) $(DESTDIR)$(man1dir)/
> -
> - uninstall:
> - rm -f $(DESTDIR)$(bindir)/$(EXEC_NAME)
> ---
> -2.7.5
> diff --git a/src/patches/beep/0007-Fix-identation-if-brace-error.patch b/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> deleted file mode 100644
> index 30ec41406..000000000
> --- a/src/patches/beep/0007-Fix-identation-if-brace-error.patch
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -From 35ba84dccb8fc8dc43cb3f575904a33ffa27e7b7 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun(a)n-dimensional.de>
> -Date: Tue, 3 Apr 2018 19:11:07 +0200
> -Subject: [PATCH] Fix indentation/if brace error
> -
> -As beep.c is not Python, the code blocks must be defined by
> -using braces instead of just indenting them differently.
> -
> -Once we do that, the outcome of multiple -f parameters will
> -actually match what the warning message documents beep does:
> -Only the last -f value will be used.
> -
> -Many projects proscribe using braces everywhere, but this
> -change keeps the beep.c coding style of using braces only
> -when absolutely necessary.
> -
> -This issue was discovered by compiling with gcc 6.
> ----
> - beep.c | 3 ++-
> - 1 file changed, 2 insertions(+), 1 deletion(-)
> -
> -diff --git a/beep.c b/beep.c
> -index 7da2e70..d46adc8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -194,11 +194,12 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> - if(!sscanf(optarg, "%f", &argfreq) || (argfreq >= 20000 /* ack! */) ||
> - (argfreq <= 0))
> - usage_bail(argv[0]);
> -- else
> -+ else {
> - if (result->freq != 0)
> - fprintf(stderr, "WARNING: multiple -f values given, only last "
> - "one is used.\n");
> - result->freq = argfreq;
> -+ }
> - break;
> - case 'l' : /* length */
> - if(!sscanf(optarg, "%d", &argval) || (argval < 0))
> ---
> -2.7.5
> diff --git a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch b/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> deleted file mode 100644
> index ac1f0b514..000000000
> --- a/src/patches/beep/0008-Apply-CVE-2018-0492-from-Debian-package.patch
> +++ /dev/null
> @@ -1,117 +0,0 @@
> -From 3b67473e16aaf2f83cb8ac18c13c9183a8e3c7b2 Mon Sep 17 00:00:00 2001
> -From: Hans Ulrich Niedermann <hun(a)n-dimensional.de>
> -Date: Tue, 3 Apr 2018 18:37:33 +0200
> -Subject: [PATCH] Apply CVE-2018-0492.patch from Debian package
> -
> ----
> - beep.c | 53 ++++++++++++++++++++++++-----------------------------
> - 1 file changed, 24 insertions(+), 29 deletions(-)
> -
> -diff --git a/beep.c b/beep.c
> -index d46adc8..f6781e8 100644
> ---- a/beep.c
> -+++ b/beep.c
> -@@ -109,6 +109,7 @@ void do_beep(int freq) {
> - /* BEEP_TYPE_EVDEV */
> - struct input_event e;
> -
> -+ memset(&e, 0, sizeof(e));
> - e.type = EV_SND;
> - e.code = SND_TONE;
> - e.value = freq;
> -@@ -124,10 +125,6 @@ void do_beep(int freq) {
> - /* If we get interrupted, it would be nice to not leave the speaker beeping in
> - perpetuity. */
> - void handle_signal(int signum) {
> --
> -- if(console_device)
> -- free(console_device);
> --
> - switch(signum) {
> - case SIGINT:
> - case SIGTERM:
> -@@ -258,7 +255,7 @@ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
> - result->verbose = 1;
> - break;
> - case 'e' : /* also --device */
> -- console_device = strdup(optarg);
> -+ console_device = optarg;
> - break;
> - case 'h' : /* notice that this is also --help */
> - default :
> -@@ -277,26 +274,6 @@ void play_beep(beep_parms_t parms) {
> - "%d delay after) @ %.2f Hz\n",
> - parms.reps, parms.length, parms.delay, parms.end_delay, parms.freq);
> -
> -- /* try to snag the console */
> -- if(console_device)
> -- console_fd = open(console_device, O_WRONLY);
> -- else
> -- if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> -- console_fd = open("/dev/vc/0", O_WRONLY);
> --
> -- if(console_fd == -1) {
> -- fprintf(stderr, "Could not open %s for writing\n",
> -- console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> -- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
> -- perror("open");
> -- exit(1);
> -- }
> --
> -- if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> -- console_type = BEEP_TYPE_EVDEV;
> -- else
> -- console_type = BEEP_TYPE_CONSOLE;
> --
> - /* Beep */
> - for (i = 0; i < parms.reps; i++) { /* start beep */
> - do_beep(parms.freq);
> -@@ -306,8 +283,6 @@ void play_beep(beep_parms_t parms) {
> - if(parms.end_delay || (i+1 < parms.reps))
> - usleep(1000*parms.delay); /* wait... */
> - } /* repeat. */
> --
> -- close(console_fd);
> - }
> -
> -
> -@@ -329,6 +304,26 @@ int main(int argc, char **argv) {
> - signal(SIGTERM, handle_signal);
> - parse_command_line(argc, argv, parms);
> -
> -+ /* try to snag the console */
> -+ if(console_device)
> -+ console_fd = open(console_device, O_WRONLY);
> -+ else
> -+ if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
> -+ console_fd = open("/dev/vc/0", O_WRONLY);
> -+
> -+ if(console_fd == -1) {
> -+ fprintf(stderr, "Could not open %s for writing\n",
> -+ console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
> -+ printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
> -+ perror("open");
> -+ exit(1);
> -+ }
> -+
> -+ if (ioctl(console_fd, EVIOCGSND(0)) != -1)
> -+ console_type = BEEP_TYPE_EVDEV;
> -+ else
> -+ console_type = BEEP_TYPE_CONSOLE;
> -+
> - /* this outermost while loop handles the possibility that -n/--new has been
> - used, i.e. that we have multiple beeps specified. Each iteration will
> - play, then free() one parms instance. */
> -@@ -366,8 +361,8 @@ int main(int argc, char **argv) {
> - parms = next;
> - }
> -
> -- if(console_device)
> -- free(console_device);
> -+ close(console_fd);
> -+ console_fd = -1;
> -
> - return EXIT_SUCCESS;
> - }
> ---
> -2.7.5
> --
> 2.47.0
>
prev parent reply other threads:[~2024-11-18 20:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 17:41 Adolf Belka
2024-11-14 14:33 ` Adolf Belka
2024-11-18 20:00 ` Michael Tremer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0FD1129F-A26C-42C3-B9E9-3C2CD321CB6B@ipfire.org \
--to=michael.tremer@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox