diff -up cups-2.4.10/cups/ipp.c.cve-2025-58364 cups-2.4.10/cups/ipp.c --- cups-2.4.10/cups/ipp.c.cve-2025-58364 2025-09-05 07:31:10.024210666 +0200 +++ cups-2.4.10/cups/ipp.c 2025-09-05 07:33:36.960140431 +0200 @@ -2949,31 +2949,6 @@ ippReadIO(void *src, /* I - Data */ tag = (ipp_tag_t)buffer[0]; - if (tag == IPP_TAG_EXTENSION) - { - /* - * Read 32-bit "extension" tag... - */ - - if ((*cb)(src, buffer, 4) < 4) - { - DEBUG_puts("1ippReadIO: Callback returned EOF/error"); - goto rollback; - } - - tag = (ipp_tag_t)((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]); - - if (tag & IPP_TAG_CUPS_CONST) - { - /* - * Fail if the high bit is set in the tag... - */ - - _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP extension tag larger than 0x7FFFFFFF."), 1); - DEBUG_printf(("1ippReadIO: bad tag 0x%x.", tag)); - goto rollback; - } - } if (tag == IPP_TAG_END) { @@ -3196,6 +3171,7 @@ ippReadIO(void *src, /* I - Data if ((*cb)(src, buffer, (size_t)n) < n) { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Unable to read IPP attribute name."), 1); DEBUG_puts("1ippReadIO: unable to read name."); goto rollback; }