From kde-commits Thu Aug 30 21:19:24 2018 From: Jaroslaw Staniek Date: Thu, 30 Aug 2018 21:19:24 +0000 To: kde-commits Subject: [kexi/3.1] src/migration/mdb/3rdparty/mdbtools/libmdb: Bug fix for 'bad' data with odd number of UCS Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=153566429803433 Git commit 410db4e376239bdf491e2fdf834b2ef04d78d052 by Jaroslaw Staniek, on= behalf of Brian Bruns. Committed on 30/08/2018 at 21:02. Pushed by staniek into branch '3.1'. Bug fix for 'bad' data with odd number of UCS-2 bytes BUG:396984 mdbtools 9d56b0c3d80cdabc21b M +7 -0 src/migration/mdb/3rdparty/mdbtools/libmdb/iconv.c https://commits.kde.org/kexi/410db4e376239bdf491e2fdf834b2ef04d78d052 diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/iconv.c b/src/migra= tion/mdb/3rdparty/mdbtools/libmdb/iconv.c index ee20ae3ce..a62d6161d 100644 --- a/src/migration/mdb/3rdparty/mdbtools/libmdb/iconv.c +++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/iconv.c @@ -74,6 +74,13 @@ mdb_unicode2ascii(MdbHandle *mdb, char *src, size_t slen= , char *dest, size_t dle //printf("1 len_in %d len_out %d\n",len_in, len_out); while (1) { iconv(mdb->iconv_in, &in_ptr, &len_in, &out_ptr, &len_out); + /* + * Have seen database with odd number of bytes in UCS-2, shouldn't happe= n but protect against it + */ + if (!IS_JET3(mdb) && len_in<=3D1) { + //fprintf(stderr, "Detected invalid number of UCS-2 bytes\n"); + break; + } if ((!len_in) || (errno =3D=3D E2BIG)) break; /* Don't bail if impossible conversion is encountered */ in_ptr +=3D (IS_JET3(mdb)) ? 1 : 2;