summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2013-04-17 13:51:25 +0200
committerMichael Schroeder <mls@suse.de>2013-04-17 13:52:14 +0200
commitb537fb8c2f2a3ae861b58f2ae60e2d8e000abd47 (patch)
treef31386f1945acb0905f8b4c315da882412e1c0dd
parent98171f702d71d884afcdc7f3a82a788a6442b8b6 (diff)
downloadlibsolv-b537fb8c2f2a3ae861b58f2ae60e2d8e000abd47.tar.gz
libsolv-b537fb8c2f2a3ae861b58f2ae60e2d8e000abd47.tar.bz2
libsolv-b537fb8c2f2a3ae861b58f2ae60e2d8e000abd47.zip
treat overlong utf8 sequences as error
-rw-r--r--ext/repo_rpmdb.c8
-rw-r--r--ext/repo_rpmdb_pubkey.c8
2 files changed, 8 insertions, 8 deletions
diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c
index e84b8ec..c3fa5ec 100644
--- a/ext/repo_rpmdb.c
+++ b/ext/repo_rpmdb.c
@@ -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
diff --git a/ext/repo_rpmdb_pubkey.c b/ext/repo_rpmdb_pubkey.c
index 4920650..3691332 100644
--- a/ext/repo_rpmdb_pubkey.c
+++ b/ext/repo_rpmdb_pubkey.c
@@ -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