Package: gjacktransport
Severity: important
Tags: patch
Dear Maintainer,
gjacktransport FTBFS on hurd-i386 because it uses PATH_MAX unconditionally. The
attached patch should fix this issue.
WBR,
Cyril Roelandt.
-- System Information:
Debian Release: wheezy/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: hurd-i386 (i686-AT386)
Kernel: GNU-Mach 1.3.99/Hurd-0.3
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
diff --git a/src/gjack.c b/src/gjack.c
index b7a9026..5915dee 100644
--- a/src/gjack.c
+++ b/src/gjack.c
@@ -16,27 +16,39 @@ extern GtkWidget *window1;
void dothejack (gboolean onoff);
void status_msg (char *msg) {
- gchar buf[PATH_MAX];
+ gchar *buf;
guint context = 1;
GtkWidget *statusbar1;
- statusbar1=lookup_widget(window1,statusbar1);
+ size_t size;
- snprintf(buf, PATH_MAX, %s, msg);
+ statusbar1=lookup_widget(window1,statusbar1);
+ size = 1+strlen(msg);
+ buf = malloc(size);
+ if (buf == NULL)
+ return;
+
+ snprintf(buf, size, %s, msg);
gtk_statusbar_pop(GTK_STATUSBAR(statusbar1), context);
gtk_statusbar_push(GTK_STATUSBAR(statusbar1), context, buf);
+ free(buf);
}
void status_printf (const char *format, ...) {
va_list arglist;
- char text[PATH_MAX];
+ char *text;
+ size_t text_size;
va_start(arglist, format);
- vsnprintf(text, PATH_MAX, format, arglist);
+ text_size = vsnprintf(NULL, 0, format, arglist);
+ text = malloc(text_size);
+ if (text == NULL)
+ return;
+ vsnprintf(text, text_size, format, arglist);
va_end(arglist);
- text[PATH_MAX -1] =0;
status_msg(text);
+ free(text);
}
/* end status bar */
diff --git a/src/resourceconfig.c b/src/resourceconfig.c
index f63e8f2..6e153d1 100644
--- a/src/resourceconfig.c
+++ b/src/resourceconfig.c
@@ -30,6 +30,10 @@
# define SYSCFGDIR /etc
#endif
+#ifdef __GNU__
+#include assert.h
+#endif
+
#include stdio.h
#include stdlib.h
#include errno.h
@@ -116,6 +120,39 @@ void try_load_rc_file (char *filename) {
}
void load_rc (void) {
+#ifdef __GNU__
+ char *home;
+ char *filename;
+ size_t size, old_size;
+
+ size = strlen(SYSCFGDIR) + strlen(GJACKTRANSPORTRC) + 2;
+ filename = malloc(size);
+ assert(filename);
+ sprintf(filename, %s/%s, SYSCFGDIR, GJACKTRANSPORTRC);
+ try_load_rc_file(filename);
+
+ home = getenv(HOME);
+ if (home) {
+ old_size = size;
+ size = strlen(home) + strlen(GJACKTRANSPORTRC) + 2;
+ if (old_size size) {
+ filename = realloc(filename, size);
+ assert(filename);
+ }
+ sprintf(filename, %s/.%s, home, GJACKTRANSPORTRC);
+ try_load_rc_file(filename);
+ }
+
+ old_size = size;
+ size = strlen(GJACKTRANSPORTRC) + 2;
+ if (old_size size) {
+ filename = realloc(filename, size);
+ assert(filename);
+ }
+ sprintf(filename, ./%s, GJACKTRANSPORTRC);
+ try_load_rc_file(filename);
+ free(filename);
+#else
char *home;
char filename[PATH_MAX];
if ((strlen(SYSCFGDIR) + strlen(GJACKTRANSPORTRC) + 2) PATH_MAX) {
@@ -131,6 +168,7 @@ void load_rc (void) {
sprintf(filename, ./%s, GJACKTRANSPORTRC);
try_load_rc_file(filename);
}
+#endif
}
/* vi:set ts=8 sts=2 sw=2: */
___
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers