]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
One more fix for STR #4072 - wasn't skipping extra data bytes.
authormike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Sun, 16 Sep 2012 23:16:32 +0000 (23:16 +0000)
committermike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Sun, 16 Sep 2012 23:16:32 +0000 (23:16 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10609 7a7537e8-13f0-0310-91df-b6672ffda945

scheduler/ipp.c

index 82a1e139fc9e94a8e5d64e9c1335f017e99858f3..a9e76fd376f99029569d9243d27425282633d8e2 100644 (file)
@@ -11039,18 +11039,30 @@ validate_job(cupsd_client_t  *con,    /* I - Client connection */
           break;
         else if (*nameptr == 0x7f)
           break;
-        else if ((*nameptr & 0xe0) == 0xc0 &&
-                 (nameptr[1] & 0xc0) != 0x80)
-          break;
-        else if ((*nameptr & 0xf0) == 0xe0 &&
-                 ((nameptr[1] & 0xc0) != 0x80 ||
-                  (nameptr[2] & 0xc0) != 0x80))
-          break;
-        else if ((*nameptr & 0xf8) == 0xf0 &&
-                 ((nameptr[1] & 0xc0) != 0x80 ||
-                  (nameptr[2] & 0xc0) != 0x80 ||
-                  (nameptr[3] & 0xc0) != 0x80))
-          break;
+        else if ((*nameptr & 0xe0) == 0xc0)
+        {
+          if ((nameptr[1] & 0xc0) != 0x80)
+            break;
+
+          nameptr ++;
+        }
+        else if ((*nameptr & 0xf0) == 0xe0)
+        {
+          if ((nameptr[1] & 0xc0) != 0x80 ||
+              (nameptr[2] & 0xc0) != 0x80)
+           break;
+
+         nameptr += 2;
+       }
+        else if ((*nameptr & 0xf8) == 0xf0)
+        {
+          if ((nameptr[1] & 0xc0) != 0x80 ||
+             (nameptr[2] & 0xc0) != 0x80 ||
+             (nameptr[3] & 0xc0) != 0x80)
+           break;
+
+         nameptr += 3;
+       }
         else if (*nameptr & 0x80)
           break;
       }