media-radio/xlog: Avoid writing to read only stderr varaible in musl C

Closes: https://bugs.gentoo.org/832236
Signed-off-by: Thomas Beierlein <tomjbe@gentoo.org>
This commit is contained in:
Thomas Beierlein
2022-03-20 15:42:22 +01:00
parent f2dedacd6c
commit bd4276c164
2 changed files with 53 additions and 1 deletions

View File

@@ -0,0 +1,51 @@
Avoid assignment to read only stderr variable
Bug #832236
diff --git a/src/gui_tracedialog.c b/src/gui_tracedialog.c
index a00020e..52b6c76 100644
--- a/src/gui_tracedialog.c
+++ b/src/gui_tracedialog.c
@@ -32,6 +32,7 @@
#include <unistd.h>
#include <glib/gstdio.h>
#include <hamlib/rig.h>
+#include <fcntl.h>
#include "gui_tracedialog.h"
#include "gui_warningdialog.h"
@@ -43,7 +44,7 @@ typedef struct
{
time_t modified; /* Last Modified Time */
gchar *filename; /* File Name */
- FILE *fd; /* File Descriptor */
+ gint filedesc; /* File Descriptor */
unsigned long filesize; /* File Size */
} fileinfo;
@@ -62,14 +63,9 @@ stop_tracing (void)
stop_hamlib ();
g_source_remove (tracetimer);
- fclose (finfo.fd);
+ close(finfo.filedesc);
dup2 (saved_fd, STDERR_FILENO);
close (saved_fd);
-#ifndef __NetBSD__
-#ifndef G_OS_WIN32
- stderr = fdopen (STDERR_FILENO, "w");
-#endif
-#endif
hamlibresult = start_hamlib (preferences.rigid, preferences.device,
RIG_DEBUG_NONE, preferences.polltime);
}
@@ -180,7 +176,10 @@ on_trace_hamlib_activate(GtkMenuItem * menuitem, gpointer user_data)
(GTK_BOX (vbox), tracelabel, FALSE, FALSE, 0);
g_free (tracestr);
stop_hamlib();
- finfo.fd = freopen (finfo.filename, "w", stderr);
+ finfo.filedesc = open(finfo.filename, O_WRONLY|O_CREAT, 0644);
+ if (finfo.filedesc >= 0) {
+ dup2 (finfo.filedesc, STDERR_FILENO);
+ }
hamlibresult = start_hamlib (preferences.rigid, preferences.device,
RIG_DEBUG_TRACE, preferences.polltime);
tracetimer = g_timeout_add

View File

@@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -30,6 +30,7 @@ DOCS=( AUTHORS data/doc/THANKS NEWS README )
src_prepare() {
eapply_user
eapply -p0 "${FILESDIR}/${PN}-2.0.7-desktop.patch"
eapply "${FILESDIR}/${PN}-2.0.24-musl.patch"
# Drop -Werror
sed -i -e "s:-Werror::g" configure.ac || die