Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package usbmuxd for openSUSE:Factory checked in at 2025-12-09 12:48:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/usbmuxd (Old) and /work/SRC/openSUSE:Factory/.usbmuxd.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "usbmuxd" Tue Dec 9 12:48:12 2025 rev:40 rq:1321526 version:1.1.1+git72.3ded00c Changes: -------- --- /work/SRC/openSUSE:Factory/usbmuxd/usbmuxd.changes 2025-02-27 14:53:56.063988493 +0100 +++ /work/SRC/openSUSE:Factory/.usbmuxd.new.1939/usbmuxd.changes 2025-12-09 12:55:49.129726411 +0100 @@ -1,0 +2,8 @@ +Mon Dec 8 08:22:27 UTC 2025 - Wolfgang Frisch <[email protected]> + +- Update to version 1.1.1+git72.3ded00c: + - Allow specifying configuration directory to use + - conf: Make sure to sanitize input for SavePairRecord command (bsc#1254302) +- Refresh harden_usbmuxd.service.patch. + +------------------------------------------------------------------- Old: ---- usbmuxd-1.1.1+git69.523f700.tar.gz New: ---- usbmuxd-1.1.1+git72.3ded00c.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ usbmuxd.spec ++++++ --- /var/tmp/diff_new_pack.HL83hS/_old 2025-12-09 12:55:55.225983570 +0100 +++ /var/tmp/diff_new_pack.HL83hS/_new 2025-12-09 12:55:55.229983739 +0100 @@ -1,7 +1,7 @@ # # spec file for package usbmuxd # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{!?_udevrulesdir: %global _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d} Name: usbmuxd -Version: 1.1.1+git69.523f700 +Version: 1.1.1+git72.3ded00c Release: 0 Summary: A socket daemon to multiplex connections from and to iOS devices License: GPL-2.0-only OR GPL-3.0-only ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.HL83hS/_old 2025-12-09 12:55:55.289986270 +0100 +++ /var/tmp/diff_new_pack.HL83hS/_new 2025-12-09 12:55:55.293986439 +0100 @@ -1,6 +1,5 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/libimobiledevice/usbmuxd</param> - <param name="changesrevision">523f7004dce885fe38b4f80e34a8f76dc8ea98b5</param></service></servicedata> -(No newline at EOF) + <param name="changesrevision">3ded00c9985a5108cfc7591a309f9a23d57a8cba</param></service></servicedata> ++++++ harden_usbmuxd.service.patch ++++++ --- /var/tmp/diff_new_pack.HL83hS/_old 2025-12-09 12:55:55.317987451 +0100 +++ /var/tmp/diff_new_pack.HL83hS/_new 2025-12-09 12:55:55.321987620 +0100 @@ -1,7 +1,7 @@ -Index: usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in +Index: usbmuxd-1.1.1+git72.3ded00c/systemd/usbmuxd.service.in =================================================================== ---- usbmuxd-1.1.1+git69.523f700.orig/systemd/usbmuxd.service.in -+++ usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in +--- usbmuxd-1.1.1+git72.3ded00c.orig/systemd/usbmuxd.service.in ++++ usbmuxd-1.1.1+git72.3ded00c/systemd/usbmuxd.service.in @@ -3,5 +3,16 @@ Description=Socket daemon for the usbmux Documentation=man:usbmuxd(8) ++++++ usbmuxd-1.1.1+git69.523f700.tar.gz -> usbmuxd-1.1.1+git72.3ded00c.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usbmuxd-1.1.1+git69.523f700/.github/FUNDING.yml new/usbmuxd-1.1.1+git72.3ded00c/.github/FUNDING.yml --- old/usbmuxd-1.1.1+git69.523f700/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/usbmuxd-1.1.1+git72.3ded00c/.github/FUNDING.yml 2025-12-06 02:13:05.000000000 +0100 @@ -0,0 +1,3 @@ +github: nikias +patreon: nikias +custom: ["https://www.paypal.me/NikiasBassen"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usbmuxd-1.1.1+git69.523f700/src/conf.c new/usbmuxd-1.1.1+git72.3ded00c/src/conf.c --- old/usbmuxd-1.1.1+git69.523f700/src/conf.c 2025-02-01 21:07:39.000000000 +0100 +++ new/usbmuxd-1.1.1+git72.3ded00c/src/conf.c 2025-12-06 02:13:05.000000000 +0100 @@ -34,10 +34,7 @@ #include <libgen.h> #include <sys/stat.h> #include <errno.h> - -#ifdef WIN32 -#include <shlobj.h> -#endif +#include <ctype.h> #include <libimobiledevice-glue/utils.h> #include <plist/plist.h> @@ -47,6 +44,8 @@ #include "log.h" #ifdef WIN32 +#include <shlobj.h> + #define DIR_SEP '\\' #define DIR_SEP_S "\\" #else @@ -180,13 +179,26 @@ /** * Creates a freedesktop compatible configuration directory. */ -static void config_create_config_dir(void) +static int config_create_config_dir(void) { const char *config_path = config_get_config_dir(); struct stat st; - if (stat(config_path, &st) != 0) { - mkdir_with_parents(config_path, 0755); + int res = stat(config_path, &st); + if (res != 0) { + res = mkdir_with_parents(config_path, 0755); + } + return res; +} + +int config_set_config_dir(const char* path) +{ + if (!path) { + return -1; } + free(__config_dir); + __config_dir = strdup(path); + usbmuxd_log(LL_DEBUG, "Setting config_dir to %s", __config_dir); + return config_create_config_dir(); } static int get_rand(int min, int max) @@ -270,7 +282,10 @@ char *config_file = NULL; /* Make sure config directory exists */ - config_create_config_dir(); + if (config_create_config_dir() < 0) { + usbmuxd_log(LL_ERROR, "ERROR: Failed to create config directory\n"); + return -1; + } config_path = config_get_config_dir(); config_file = string_concat(config_path, DIR_SEP_S, CONFIG_FILE, NULL); @@ -342,7 +357,10 @@ if (!udid) return 0; /* ensure config directory exists */ - config_create_config_dir(); + if (config_create_config_dir() < 0) { + usbmuxd_log(LL_ERROR, "ERROR: Failed to create config directory\n"); + return -1; + } /* build file path */ const char *config_path = config_get_config_dir(); @@ -408,13 +426,19 @@ if (!udid || !record_data || record_size < 8) return -EINVAL; - plist_t plist = NULL; - if (memcmp(record_data, "bplist00", 8) == 0) { - plist_from_bin(record_data, record_size, &plist); - } else { - plist_from_xml(record_data, record_size, &plist); + /* verify udid input */ + const char* u = udid; + while (*u != '\0') { + if (!isalnum(*u) && (*u != '-')) { + usbmuxd_log(LL_ERROR, "ERROR: %s: udid contains invalid character.\n", __func__); + return -EINVAL; + } + u++; } + plist_t plist = NULL; + plist_from_memory(record_data, record_size, &plist, NULL); + if (!plist || plist_get_node_type(plist) != PLIST_DICT) { if (plist) plist_free(plist); @@ -422,7 +446,10 @@ } /* ensure config directory exists */ - config_create_config_dir(); + if (config_create_config_dir() < 0) { + usbmuxd_log(LL_ERROR, "ERROR: Failed to create config directory\n"); + return -1; + } /* build file path */ const char *config_path = config_get_config_dir(); @@ -458,7 +485,10 @@ int res = 0; /* ensure config directory exists */ - config_create_config_dir(); + if (config_create_config_dir() < 0) { + usbmuxd_log(LL_ERROR, "ERROR: Failed to create config directory\n"); + return -1; + } /* build file path */ const char *config_path = config_get_config_dir(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usbmuxd-1.1.1+git69.523f700/src/conf.h new/usbmuxd-1.1.1+git72.3ded00c/src/conf.h --- old/usbmuxd-1.1.1+git69.523f700/src/conf.h 2025-02-01 21:07:39.000000000 +0100 +++ new/usbmuxd-1.1.1+git72.3ded00c/src/conf.h 2025-12-06 02:13:05.000000000 +0100 @@ -27,6 +27,7 @@ #include <plist/plist.h> const char *config_get_config_dir(); +int config_set_config_dir(const char* path); void config_get_system_buid(char **system_buid); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/usbmuxd-1.1.1+git69.523f700/src/main.c new/usbmuxd-1.1.1+git72.3ded00c/src/main.c --- old/usbmuxd-1.1.1+git69.523f700/src/main.c 2025-02-01 21:07:39.000000000 +0100 +++ new/usbmuxd-1.1.1+git72.3ded00c/src/main.c 2025-12-06 02:13:05.000000000 +0100 @@ -517,6 +517,7 @@ #ifdef HAVE_SYSTEMD printf(" -s, --systemd\t\tRun in systemd operation mode (implies -z and -f).\n"); #endif + printf(" -C, --config-dir PATH\tSpecify different configuration directory.\n"); printf(" -S, --socket ADDR:PORT | PATH Specify source ADDR and PORT or a UNIX\n"); printf(" \t\tsocket PATH to use for the listening socket.\n"); printf(" \t\tDefault: %s\n", socket_path); @@ -549,6 +550,7 @@ #ifdef HAVE_SYSTEMD {"systemd", no_argument, NULL, 's'}, #endif + {"config-dir", required_argument, NULL, 'C'}, {"socket", required_argument, NULL, 'S'}, {"pidfile", required_argument, NULL, 'P'}, {"exit", no_argument, NULL, 'x'}, @@ -560,11 +562,11 @@ int c; #ifdef HAVE_SYSTEMD - const char* opts_spec = "hfvVuU:xXsnzl:pS:P:"; + const char* opts_spec = "hfvVuU:xXsnzl:pC:S:P:"; #elif HAVE_UDEV - const char* opts_spec = "hfvVuU:xXnzl:pS:P:"; + const char* opts_spec = "hfvVuU:xXnzl:pC:S:P:"; #else - const char* opts_spec = "hfvVU:xXnzl:pS:P:"; + const char* opts_spec = "hfvVU:xXnzl:pC:S:P:"; #endif while (1) { @@ -611,6 +613,14 @@ case 'z': opt_enable_exit = 1; break; + case 'C': + if (!*optarg) { + usbmuxd_log(LL_FATAL, "ERROR: --config-dir requires an argument"); + usage(); + exit(2); + } + config_set_config_dir(optarg); + break; case 'S': if (!*optarg || *optarg == '-') { usbmuxd_log(LL_FATAL, "ERROR: --socket requires an argument"); @@ -796,11 +806,12 @@ #ifdef HAVE_LIBIMOBILEDEVICE const char* userprefdir = config_get_config_dir(); + usbmuxd_log(LL_NOTICE, "Configuration directory: %s", userprefdir); struct stat fst; memset(&fst, '\0', sizeof(struct stat)); if (stat(userprefdir, &fst) < 0) { if (mkdir(userprefdir, 0775) < 0) { - usbmuxd_log(LL_FATAL, "Failed to create required directory '%s': %s", userprefdir, strerror(errno)); + usbmuxd_log(LL_FATAL, "Failed to create configuration directory '%s': %s", userprefdir, strerror(errno)); res = -1; goto terminate; }
