tag 562033 + pending
thanks

Dear maintainer,

I've prepared an NMU for xxkb (versioned as 1.11-2.1) and
uploaded it to DELAYED/2. Please feel free to tell me if I
should delay it longer.

Regards.

-- 
 .''`.   http://info.comodo.priv.at/ -- GPG Key IDs: 0x00F3CFE4, 0x8649AA06
 : :' :  Debian GNU/Linux user, admin, & developer - http://www.debian.org/
 `. `'   Member of VIBE!AT & SPI, fellow of Free Software Foundation Europe
   `-    NP: Cat Stevens: Come On And Dance
diff -u xxkb-1.11/debian/changelog xxkb-1.11/debian/changelog
--- xxkb-1.11/debian/changelog
+++ xxkb-1.11/debian/changelog
@@ -1,3 +1,11 @@
+xxkb (1.11-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Fix "segfaults on startup": add patch from Sebastian Andrzej Siewior to
+    handle missing config file (closes: #562033).
+
+ -- gregor herrmann <gre...@debian.org>  Sun, 17 Jan 2010 23:45:28 +0100
+
 xxkb (1.11-2) unstable; urgency=low
 
   [ Artem Chuprina ]
only in patch2:
unchanged:
--- xxkb-1.11.orig/resource.c
+++ xxkb-1.11/resource.c
@@ -558,9 +558,7 @@
 	char *homedir, *filename;
 	char *str_list, *res_app_list, res_ctrls[256];
 	int i, j;
-#ifndef XT_RESOURCE_SEARCH
 	size_t len;
-#endif
 
 	/*
 	 * Init pixbuf engine
@@ -587,7 +585,10 @@
 	}
 	sprintf(filename, "%s/%s", APPDEFDIR, APPDEFFILE);
 #endif
-	db = XrmGetFileDatabase(filename);
+	if (filename)
+		db = XrmGetFileDatabase(filename);
+	else
+		db = NULL;
 	if (db == NULL) {
 		/*
 		 * this situation is not fatal if the user has all
@@ -618,12 +619,30 @@
 	/*
 	 * merge settings
 	 */
-	stat = XrmCombineFileDatabase(filename, &db, True);
+	if (filename)
+		stat = XrmCombineFileDatabase(filename, &db, True);
+	else
+		stat = NULL;
 	if (stat == 0 && db == NULL) {
 		/* failed */
 		warnx("Unable to find configuration data");
 		return 5;
 	}
+
+	if (!filename) {
+		/*
+		 * In case the user did not have a config file we have to come
+		 * up with one
+		 */
+		len = strlen(homedir) + 1 + strlen(USERDEFFILE);
+		filename = malloc(len + 1);
+		if (filename == NULL) {
+			warn(NULL);
+			XrmDestroyDatabase(db);
+			return 1;
+		}
+		sprintf(filename, "%s/%s", homedir, USERDEFFILE);
+	}
 	/*
 	 * start with the conf object
 	 */

Attachment: signature.asc
Description: Digital signature

Reply via email to