treat overlong utf8 sequences as error
authorMichael Schroeder <mls@suse.de>
Wed, 17 Apr 2013 11:51:25 +0000 (13:51 +0200)
committerMichael Schroeder <mls@suse.de>
Wed, 17 Apr 2013 11:52:14 +0000 (13:52 +0200)
ext/repo_rpmdb.c
ext/repo_rpmdb_pubkey.c

index e84b8ec..c3fa5ec 100644 (file)
@@ -372,13 +372,13 @@ setutf8string(Repodata *repodata, Id handle, Id tag, const char *str)
            {
               /* check for overlong sequences */
               if ((c & 0x820823e0) == 0x80000000)
-                c = 0xfdffffff;
+                break;
               else if ((c & 0x020821f0) == 0x02000000)
-                c = 0xfff7ffff;
+                break;
               else if ((c & 0x000820f8) == 0x00080000)
-                c = 0xffffd000;
+                break;
               else if ((c & 0x0000207c) == 0x00002000)
-                c = 0xffffff70;
+                break;
             }
         }
       else
index 4920650..3691332 100644 (file)
@@ -61,13 +61,13 @@ setutf8string(Repodata *repodata, Id handle, Id tag, const char *str)
            {
               /* check for overlong sequences */
               if ((c & 0x820823e0) == 0x80000000)
-                c = 0xfdffffff;
+                break;
               else if ((c & 0x020821f0) == 0x02000000)
-                c = 0xfff7ffff;
+                break;
               else if ((c & 0x000820f8) == 0x00080000)
-                c = 0xffffd000;
+                break;
               else if ((c & 0x0000207c) == 0x00002000)
-                c = 0xffffff70;
+                break;
             }
         }
       else