From: Michael R Sweet Date: Mon, 11 Jun 2018 13:37:34 +0000 (-0400) Subject: Fix regressions in ippValidateAttribute (Issue #5322, Issue #5330) X-Git-Tag: v2.3b6~151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d677f11f1e3353524d46c2842188eccfcdcd5a2;p=thirdparty%2Fcups.git Fix regressions in ippValidateAttribute (Issue #5322, Issue #5330) --- diff --git a/CHANGES.md b/CHANGES.md index 2e42d94dc1..5b91b7029b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,11 @@ -CHANGES - 2.3b6 - 2018-06-05 +CHANGES - 2.3b6 - 2018-06-11 ============================ Changes in CUPS v2.3b6 ---------------------- +- Fixed a regression in the changes to ippValidateAttribute (Issue #5322, + Issue #5330) - Fixed a memory leak for some IPP (extension) syntaxes. diff --git a/cups/ipp.c b/cups/ipp.c index 95d53cc447..325de02b92 100644 --- a/cups/ipp.c +++ b/cups/ipp.c @@ -5033,16 +5033,19 @@ ippValidateAttribute( break; } - if (*ptr < ' ' || *ptr == 0x7f) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text); - return (0); - } - else if (*ptr) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text); - return (0); - } + if (*ptr) + { + if (*ptr < ' ' || *ptr == 0x7f) + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text); + return (0); + } + else + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text); + return (0); + } + } if ((ptr - attr->values[i].string.text) > (IPP_MAX_TEXT - 1)) { @@ -5091,16 +5094,19 @@ ippValidateAttribute( break; } - if (*ptr < ' ' || *ptr == 0x7f) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text); - return (0); - } - else if (*ptr) + if (*ptr) { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text); - return (0); - } + if (*ptr < ' ' || *ptr == 0x7f) + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text); + return (0); + } + else + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text); + return (0); + } + } if ((ptr - attr->values[i].string.text) > (IPP_MAX_NAME - 1)) {