Summary: | Possible crash when importing MDB file having non-latin characters in column names | ||
---|---|---|---|
Product: | [Applications] KEXI | Reporter: | Jarosław Staniek <staniek> |
Component: | Migration/Import/Export | Assignee: | Jarosław Staniek <staniek> |
Status: | CLOSED FIXED | ||
Severity: | crash | CC: | adam, inksi |
Priority: | NOR | ||
Version: | 3.1.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | All | ||
URL: | https://phabricator.kde.org/D14486 | ||
Latest Commit: | https://commits.kde.org/kexi/410db4e376239bdf491e2fdf834b2ef04d78d052 | Version Fixed In: | 3.2.0 |
Sentry Crash Report: |
Description
Jarosław Staniek
2018-07-30 13:59:10 UTC
Form thread: https://forum.kde.org/viewtopic.php?f=221&t=152693&sid=fcbf9f672908d469504fdbb6e5c4c4ea Actual bug fix in mdbtools upstream: https://github.com/brianb/mdbtools/commit/9d56b0c3d80cdabc21bc4af0f9bba849b24035f0. We're combining the fix with complete merge with current mdbtools update. Git commit 08ac1466f449097300b4a7b7d62fdc2b78a9a7a0 by Jaroslaw Staniek. Committed on 30/08/2018 at 21:04. Pushed by staniek into branch '3.1'. Update to current mdbtools (Merge branch 'D14486' into 3.1) Summary: FIXED-IN:3.1.1 Bug fixes relevant to KEXI: - Fix crash on importing zero length memos (long text) - Fix not being able to handle binary objects larger than 16 MiB. Limit is now 256 MiB. - Fix possible crash when importing MDB file having non-latin characters in column names of unexpected length Details: - GIT_SILENT Fix typos mdbtools 9fb36c0f075de 772b5675dd98bda - Segfault fix on memo zero length multiple page While converting memo field to string, stop processing on zero length multiple page. mdbtools a89baeacf5976daf196 - Fix binary output Closes issue #44. mdbtools 9ab40e83e6789015c965 - Introduce MDB_BACKEND_* enum mdbtools cce6cfead2377ae7d - Fix for dates in mdb-props mdbtools a3ab6c7969ee379e2393f - Allow CFLGAS="-std=c99 -D_POSIX_C_SOURCE=2" Use glib function: strcasecmp -> g_ascii_strcasecmp bzero -> memset strdup -> g_strdump Don't use arithmetic void*+int mdbtools 2a70e16a8b943b25bc - Avoid dynamic array allocation on stack. This might help some non C99 compliant compilers, while being a trivial change. mdbtools 9b4d5e624b4e16fd1097 - Compiles with VC++ as a .dll. Set up to use static glib, libiconv, libintl for ease of use. mdbtools cb65d4f3ddd5d95261 - Fix warnings mostly related unsigned char after merging mdbtools cb65d4f3ddd5d952 - Fix not being able to handle blobs > 16 MB. Limit now at 256 MB mdbtools 850d9e169d91bda02 - JET 4: index flags (eg, UNIQUE) 4 bytes later. Re-reverse engineered index meta information layout in JET 4 file format, based particularly on jackcess (Java) JET/Access database library (https://github.com/jahlborn/jackcess), and hexdumps of JET 4 database index meta information. Based both on byte counting of jackcess reading of index definitions and also expected flag values (0x80, 0x89, etc), the flags of JET 4 index definition are 4 bytes later than mdbtools previously thought. See IndexData.read() and private static class Jet4Format in src/main/java/com/healthmarketscience/jackcess/impl/IndexData.java src/main/java/com/healthmarketscience/jackcess/impl/JetFormat.java in jackcess source for layout reference. Now appears to get sensible "CREATE INDEX"/"CREATE UNIQUE INDEX" behaviour on export to PostgreSQL schema. Also added extensive index definition byte layout reference to top of src/libmdb/index.c for ease of reference, plus more debugging assistance (and comments of phases reading index for readability). mdbtools 999f6f5f104393f77 - mdb-export: Add boolean words option (TRUE/FALSE) Adds "-B" (--boolean-words) option to mdb-export, which will reconfigure mdb/data.c to export TRUE/FALSE for boolean values instead of 1/0. The option is needed to support BOOLEAN fields on PostgreSQL, which will not implicitly cast bare 1/0 into a BOOLEAN value. Value literals are the SQL TRUE/FALSE, and _quoted_ words meaning true/false and _quoted_ '1'/'0'. With this flag the SQL TRUE/FALSE values are output, which should work with several SQL databases. PostgreSQL Reference: http://www.postgresql.org/docs/current/static/datatype-boolean.html (note for KEXI: note used but added to make data.c merges more cleanly) mdbtools 8b1db6c08edbdf - At least for me IS NULL and IS NOT NULL are the wrong way round in SQL, fixed it. mdbtools 2355aec912724a2 - bug fix for 'bad' data with odd number of UCS-2 bytes (fixes BUG:396984 in KEXI) mdbtools 9d56b0c3d80cdabc21b Test Plan: See description of https://bugs.kde.org/show_bug.cgi?id=396984 Reviewers: piggz Reviewed By: piggz Subscribers: anthonyfieroni, pino, Kexi-Devel-list Tags: #kexi Maniphest Tasks: T1361 Differential Revision: https://phabricator.kde.org/D14486 https://commits.kde.org/kexi/08ac1466f449097300b4a7b7d62fdc2b78a9a7a0 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 mdbtools 9d56b0c3d80cdabc21b M +7 -0 src/migration/mdb/3rdparty/mdbtools/libmdb/iconv.c https://commits.kde.org/kexi/410db4e376239bdf491e2fdf834b2ef04d78d052 |