Control: tags 1128734 + pending

Dear maintainer,

I've prepared an NMU for open-vm-tools (versioned as 2:13.0.10-1.1) and
uploaded it immediately.

Best,
Chris

diff -Nru open-vm-tools-13.0.10/debian/changelog open-vm-tools-13.0.10/debian/changelog
--- open-vm-tools-13.0.10/debian/changelog	2026-01-28 10:49:51.000000000 +0100
+++ open-vm-tools-13.0.10/debian/changelog	2026-08-27 07:46:22.000000000 +0200
@@ -1,3 +1,11 @@
+open-vm-tools (2:13.0.10-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix C23 const initialization discard (Closes: #1128734)
+  * Workaround mismatching g_free symbol definition
+
+ -- Chris Hofstaedtler <[email protected]>  Thu, 27 Aug 2026 07:46:22 +0200
+
 open-vm-tools (2:13.0.10-1) unstable; urgency=medium
 
   * [b920ae7] New upstream version 13.0.10
diff -Nru open-vm-tools-13.0.10/debian/patches/glib-free open-vm-tools-13.0.10/debian/patches/glib-free
--- open-vm-tools-13.0.10/debian/patches/glib-free	1970-01-01 01:00:00.000000000 +0100
+++ open-vm-tools-13.0.10/debian/patches/glib-free	2026-08-27 07:46:22.000000000 +0200
@@ -0,0 +1,13 @@
+diff --git i/open-vm-tools/lib/rpcChannel/glib_stubs.c w/open-vm-tools/lib/rpcChannel/glib_stubs.c
+index c32deb07..2b6e15b6 100644
+--- i/open-vm-tools/lib/rpcChannel/glib_stubs.c
++++ w/open-vm-tools/lib/rpcChannel/glib_stubs.c
+@@ -35,7 +35,7 @@
+ 
+ void *g_malloc0(size_t s) { return Util_SafeCalloc(1, s); }
+ void *g_malloc0_n(size_t n, size_t s) { return Util_SafeCalloc(n, s); }
+-void g_free(void *p) { free(p); }
++void g_free_sized(void *p, size_t) { free(p); }
+ 
+ void g_mutex_init(GMutex *mutex) { }
+ void g_mutex_clear(GMutex *mutex) { }
diff -Nru open-vm-tools-13.0.10/debian/patches/series open-vm-tools-13.0.10/debian/patches/series
--- open-vm-tools-13.0.10/debian/patches/series	2026-01-28 10:49:51.000000000 +0100
+++ open-vm-tools-13.0.10/debian/patches/series	2026-08-27 07:46:22.000000000 +0200
@@ -1,2 +1,4 @@
+glib-free
 use-debian-pam
 debian/scsi-udev-rule
+upstream/pr-783.patch
diff -Nru open-vm-tools-13.0.10/debian/patches/upstream/pr-783.patch open-vm-tools-13.0.10/debian/patches/upstream/pr-783.patch
--- open-vm-tools-13.0.10/debian/patches/upstream/pr-783.patch	1970-01-01 01:00:00.000000000 +0100
+++ open-vm-tools-13.0.10/debian/patches/upstream/pr-783.patch	2026-08-27 07:45:19.000000000 +0200
@@ -0,0 +1,141 @@
+From b309f5d40619f033bbddef5c95682beed31659ac Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <[email protected]>
+Date: Mon, 26 Jan 2026 11:55:03 +0000
+Subject: [PATCH] fix initialization discards 'const' qualifier from pointer
+ target type
+
+Since glibc-2.43:
+
+For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
+strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return
+pointers into their input arrays now have definitions as macros that
+return a pointer to a const-qualified type when the input argument is
+a pointer to a const-qualified type.
+
+https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html
+
+Signed-off-by: Rudi Heitbaum <[email protected]>
+---
+ open-vm-tools/lib/hgfs/hgfsEscape.c            | 6 +++---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 2 +-
+ open-vm-tools/lib/misc/strutil.c               | 7 ++++---
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c       | 2 +-
+ open-vm-tools/libvmtools/i18n.c                | 2 +-
+ open-vm-tools/services/plugins/vix/vixTools.c  | 2 +-
+ 6 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfs/hgfsEscape.c b/open-vm-tools/lib/hgfs/hgfsEscape.c
+index c4d39b12d..212ea1c79 100644
+--- a/open-vm-tools/lib/hgfs/hgfsEscape.c
++++ b/open-vm-tools/lib/hgfs/hgfsEscape.c
+@@ -175,7 +175,7 @@ HgfsAddEscapeCharacter(char const * bufIn,      // IN: input name
+    HgfsEscapeContext *escapeContext = (HgfsEscapeContext *)context;
+    uint32 charactersToCopy;
+    uint32 outputSpace;
+-   char* illegal;
++   const char* illegal;
+    Bool result = TRUE;
+ 
+    ASSERT(offset >= escapeContext->processedOffset); // Scanning forward
+@@ -573,7 +573,7 @@ HgfsIsEscapeSequence(char const *bufIn,   // IN: input name
+                      uint32 length)       // IN: length of the name in characters
+ {
+    if (bufIn[offset] == HGFS_ESCAPE_CHAR && offset > 0) {
+-      char *substitute;
++      const char *substitute;
+       if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR && offset > 1) {
+          /*
+           * Possibly a valid sequence, check it must be preceded with a substitute
+@@ -887,7 +887,7 @@ HgfsEscapeUndoComponent(char   *bufIn,             // IN: Characters to be unesc
+       size_t offset = escapePointer - bufIn;
+ 
+       if (HgfsIsEscapeSequence(bufIn, offset, sizeIn)) {
+-         char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]);
++         const char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]);
+          if (substitute != NULL) {
+             bufIn[offset - 1] = HGFS_ILLEGAL_CHARS[substitute - HGFS_SUBSTITUTE_CHARS];
+          } else if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR) {
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 4a0bc9378..fd1db4a29 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -1364,7 +1364,7 @@ static void
+ HgfsGetHiddenAttr(char const *fileName,         // IN:  Input filename
+                   HgfsFileAttrInfo *attr)       // OUT: Struct to copy into
+ {
+-   char *baseName;
++   const char *baseName;
+ 
+    ASSERT(fileName);
+    ASSERT(attr);
+diff --git a/open-vm-tools/lib/misc/strutil.c b/open-vm-tools/lib/misc/strutil.c
+index 4fc6502e4..4be63b7b8 100644
+--- a/open-vm-tools/lib/misc/strutil.c
++++ b/open-vm-tools/lib/misc/strutil.c
+@@ -1454,6 +1454,7 @@ StrUtil_ReplaceAll(const char *orig, // IN
+     char *result;
+     const char *current;
+     char *tmp;
++    const char *tmp2;
+     size_t lenWhat;
+     size_t lenWith;
+     size_t occurrences = 0;
+@@ -1467,8 +1468,8 @@ StrUtil_ReplaceAll(const char *orig, // IN
+     lenWith = strlen(with);
+ 
+     current = orig;
+-    while ((tmp = strstr(current, what)) != NULL) {
+-       current = tmp + lenWhat;
++    while ((tmp2 = strstr(current, what)) != NULL) {
++       current = tmp2 + lenWhat;
+        ++occurrences;
+     }
+ 
+@@ -1695,7 +1696,7 @@ StrUtilHasListItem(char const *list,                               // IN:
+                    char const *item,                               // IN:
+                    int (*ncmp)(char const *, char const*, size_t)) // IN:
+ {
+-   char *foundDelim;
++   const char *foundDelim;
+    int itemLen = strlen(item);
+ 
+    if (list == NULL) {
+diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+index 0135e6a09..922b4efe2 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -263,7 +263,7 @@ static Bool
+ IpEntryMatchesDevice(const char *devName,
+                      const char *label)
+ {
+-   char *p;
++   const char *p;
+    size_t n;
+ 
+    if ((p = strchr(label, ':')) != NULL) {
+diff --git a/open-vm-tools/libvmtools/i18n.c b/open-vm-tools/libvmtools/i18n.c
+index 3085f72d7..f61406d14 100644
+--- a/open-vm-tools/libvmtools/i18n.c
++++ b/open-vm-tools/libvmtools/i18n.c
+@@ -698,7 +698,7 @@ VMTools_BindTextDomain(const char *domain,
+        * If we couldn't find the catalog file for the user's language, see if
+        * we can find a more generic language (e.g., for "en_US", also try "en").
+        */
+-      char *sep = Str_Strrchr(lang, '_');
++      const char *sep = Str_Strrchr(lang, '_');
+       if (sep != NULL) {
+          if (usrlang == NULL) {
+             usrlang = Util_SafeStrdup(lang);
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index 654512c5e..5c79ca12a 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -930,7 +930,7 @@ VixToolsBuildUserEnvironmentTable(const char * const *envp)   // IN: optional
+    for (; NULL != *envp; envp++) {
+       char *name;
+       char *value;
+-      char *whereToSplit;
++      const char *whereToSplit;
+       size_t nameLen;
+ 
+       whereToSplit = strchr(*envp, '=');

Reply via email to