untrusted comment: verify with openbsd-75-base.pub
RWRGj1pRpprAfqoyYxBWo8dRSTUNMBPLW/kL6q39+70VUtFbrHPU03TGh4SLB+ntXGOzrhlAXHV6daJ0NAmt/rwHJhdMLoxjwwc=

OpenBSD 7.5 errata 021, April 1, 2025:

In libexpat fix regression of behavior introduced by previous errata.

Apply by doing:
   signify -Vep /etc/signify/openbsd-75-base.pub -x 021_expat.patch.sig \
       -m - | (cd /usr/src && patch -p0)

And then rebuild and install libexpat:
   cd /usr/src/lib/libexpat
   make obj
   make
   make install

Index: lib/libexpat/Changes
===================================================================
RCS file: /cvs/src/lib/libexpat/Changes,v
diff -u -p -r1.24.4.3 Changes
--- lib/libexpat/Changes        16 Mar 2025 21:28:30 -0000      1.24.4.3
+++ lib/libexpat/Changes        29 Mar 2025 21:36:33 -0000
@@ -2,6 +2,19 @@ NOTE: We are looking for help with a few
      https://github.com/libexpat/libexpat/labels/help%20wanted
      If you can help, please get in touch.  Thanks!

+        Bug fixes:
+       #980 #989  Restore event pointer behavior from Expat 2.6.4
+                    (that the fix to CVE-2024-8176 changed in 2.7.0);
+                    affected API functions are:
+                    - XML_GetCurrentByteCount
+                    - XML_GetCurrentByteIndex
+                    - XML_GetCurrentColumnNumber
+                    - XML_GetCurrentLineNumber
+                    - XML_GetInputContext
+
+        Other changes:
+            #986  Address compiler warnings
+
        Security fixes:
       #893 #973  CVE-2024-8176 -- Fix crash from chaining a large number
                    of entities caused by stack overflow by resolving use of
Index: lib/libexpat/lib/xmlparse.c
===================================================================
RCS file: /cvs/src/lib/libexpat/lib/xmlparse.c,v
diff -u -p -r1.37.2.3 xmlparse.c
--- lib/libexpat/lib/xmlparse.c 16 Mar 2025 21:28:30 -0000      1.37.2.3
+++ lib/libexpat/lib/xmlparse.c 29 Mar 2025 21:36:33 -0000
@@ -1,4 +1,4 @@
-/* 7d6840a33c250b74adb0ba295d6ec818dccebebaffc8c3ed27d0b29c28adbeb3 (2.7.0+)
+/* d19ae032c224863c1527ba44d228cc34b99192c3a4c5a27af1f4e054d45ee031 (2.7.1+)
                            __  __            _
                         ___\ \/ /_ __   __ _| |_
                        / _ \\  /| '_ \ / _` | __|
@@ -3391,12 +3391,13 @@ doContent(XML_Parser parser, int startTa
      break;
      /* LCOV_EXCL_STOP */
    }
-    *eventPP = s = next;
    switch (parser->m_parsingStatus.parsing) {
    case XML_SUSPENDED:
+      *eventPP = next;
      *nextPtr = next;
      return XML_ERROR_NONE;
    case XML_FINISHED:
+      *eventPP = next;
      return XML_ERROR_ABORTED;
    case XML_PARSING:
      if (parser->m_reenter) {
@@ -3405,6 +3406,7 @@ doContent(XML_Parser parser, int startTa
      }
      /* Fall through */
    default:;
+      *eventPP = s = next;
    }
  }
  /* not reached */
@@ -4321,12 +4323,13 @@ doCdataSection(XML_Parser parser, const
      /* LCOV_EXCL_STOP */
    }

-    *eventPP = s = next;
    switch (parser->m_parsingStatus.parsing) {
    case XML_SUSPENDED:
+      *eventPP = next;
      *nextPtr = next;
      return XML_ERROR_NONE;
    case XML_FINISHED:
+      *eventPP = next;
      return XML_ERROR_ABORTED;
    case XML_PARSING:
      if (parser->m_reenter) {
@@ -4334,6 +4337,7 @@ doCdataSection(XML_Parser parser, const
      }
      /* Fall through */
    default:;
+      *eventPP = s = next;
    }
  }
  /* not reached */
@@ -5940,12 +5944,13 @@ epilogProcessor(XML_Parser parser, const
    default:
      return XML_ERROR_JUNK_AFTER_DOC_ELEMENT;
    }
-    parser->m_eventPtr = s = next;
    switch (parser->m_parsingStatus.parsing) {
    case XML_SUSPENDED:
+      parser->m_eventPtr = next;
      *nextPtr = next;
      return XML_ERROR_NONE;
    case XML_FINISHED:
+      parser->m_eventPtr = next;
      return XML_ERROR_ABORTED;
    case XML_PARSING:
      if (parser->m_reenter) {
@@ -5953,6 +5958,7 @@ epilogProcessor(XML_Parser parser, const
      }
    /* Fall through */
    default:;
+      parser->m_eventPtr = s = next;
    }
  }
}
@@ -8237,7 +8243,7 @@ entityTrackingReportStats(XML_Parser roo
      (void *)rootParser, rootParser->m_entity_stats.countEverOpened,
      rootParser->m_entity_stats.currentDepth,
      rootParser->m_entity_stats.maximumDepthSeen,
-      (rootParser->m_entity_stats.currentDepth - 1) * 2, "",
+      ((int)rootParser->m_entity_stats.currentDepth - 1) * 2, "",
      entity->is_param ? "%" : "&", entityName, action, entity->textLen,
      sourceLine);
}