Package: mx Version: 1.3.1-1 Severity: important Tags: patch User: debian-h...@lists.debian.org Usertags: hurd
Hi, The attached patch solves the FTBFS problems of mx on GNU/Hurd. Dynamic memory allocation is used to avoid the absence of a PATH_MAX definition for GNU/Hurd. The glib versions of malloc and free are utilized. Thanks!
diff -ur mx-1.3.1/mx/mx-create-image-cache.c mx-1.3.1.modified/mx/mx-create-image-cache.c --- mx-1.3.1/mx/mx-create-image-cache.c 2011-08-11 18:12:29.000000000 +0200 +++ mx-1.3.1.modified/mx/mx-create-image-cache.c 2011-11-09 12:51:51.000000000 +0100 @@ -417,7 +417,8 @@ char *pngfile) { FILE *file; - char filename[PATH_MAX *2]; + char *filename = NULL; + int len = 0; struct imgcache_element element; struct imgcache_element *elm; GList *item; @@ -426,11 +427,14 @@ strcpy(&element.filename[0], pngfile); + len = strlen (directory) + 9; + filename = g_malloc (len + 1); sprintf(filename, "%s/mx.cache", directory); file = fopen(filename, "w"); if (!file) { fprintf(stderr, "Cannot write cache file: %s\n", filename); + g_free (filename); return; } fwrite(&element, 1, sizeof(element), file); @@ -442,6 +446,7 @@ elm->ptr = NULL; fwrite(elm, 1, sizeof(element), file); } + g_free (filename); fclose(file); } @@ -449,7 +454,9 @@ int main(int argc, char **argv) { - char image_file[PATH_MAX]; + char *image_file = NULL; + int len = 0; + if (argc <= 1) { printf("Usage:\n\t\tmakecache <directory>\n"); return EXIT_FAILURE; @@ -457,8 +464,11 @@ g_type_init(); makecache(argv[1], 1); optimal_placement(); + len = sizeof (guint) + 18; + image_file = g_malloc (len + 1); sprintf(image_file, "/var/cache/mx/%08x.png", g_str_hash(argv[1])); if (make_final_image(image_file)) write_cache_file(argv[1], image_file); + g_free (image_file); return EXIT_SUCCESS; }