This commit replaces sprintf(buf, ...) with
snprintf(buf, sizeof(buf), ...),
specifically in the "easy" cases where buf is allocated with a size
known at compile time.
The changes make sure we are not write outside array/string bounds which
will lead to undefined behaviour. In case the code is trying to write
outside bounds - safe version of functions simply cut the string
messages so we process this gracefully.
All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the BSD-new
license. I am contributing on behalf of my employer Amazon Web Services,
Inc.
bsonudf.cpp warnings cleanup by Daniel Black
Reviewer: Daniel Black
- Removed not used variables
- Added /* fall through */ to switches
- Removed not used static variable 'slash' from header file
- Removed test of fp->field_length >= 0 as it is always true
- Only indentation changes in sql_rename.cc
- Ignore some WSREP error messages when there isn't a internet connection
- Force restart of stat_tables_part.test to make result stable
- Fixed compiler warnings in CONNECT
- clang complains about register in C++
- Removed not used variables
- Fixed bug when printing date in filamdbf.cpp
- Added {} to fix warning about dangling else
- Changed connect_done_func() to be global to remove conflict with header
files
- Added extra () around assignment in if
qrp=NULL from JDBConn::SetUUID. Also delete a clone of this function
that was duplicated in javaconn.cpp.
modified: storage/connect/javaconn.cpp
modified: storage/connect/jdbconn.cpp
- Update some disabled tests and results to avoid failure
modified: storage/connect/mysql-test/connect/r/jdbc.result
modified: storage/connect/mysql-test/connect/r/json_java_2.result
modified: storage/connect/mysql-test/connect/r/json_java_3.result
modified: storage/connect/mysql-test/connect/r/mongo_java_2.result
modified: storage/connect/mysql-test/connect/r/mongo_java_3.result
modified: storage/connect/mysql-test/connect/t/json_java_2.test
modified: storage/connect/mysql-test/connect/t/json_java_3.test
modified: storage/connect/mysql-test/connect/t/mongo_java_2.test
modified: storage/connect/mysql-test/connect/t/mongo_java_3.test
filamtxt.cpp: DOSFAM::RenameTempFile: Change sprintf to snprintf.
filamvct.cpp: VECFAM::RenameTempFile: Change sprintf to snprintf.
javaconn.cpp:
Add JAVAConn::GetUTFString function.
Use it instead of env->GetStringUTFChars.
Fix wrong identation.
javaconn.h: Add GetUTFString declaration.
jdbconn.cpp:
Use GetUTFString function instead of env->GetStringUTFChars.
jmgoconn.cpp:
Use GetUTFString function instead of env->GetStringUTFChars.
Fix wrong identation.
jsonudf.cpp: change 139 to BMX line 4631.
tabjmg.cpp:
Add ReleaseStringUTF.
Fix wrong identation.
tabpivot.cpp: Fix wrong identation.
tabutil.cpp: TDBPRX::GetSubTable: Change sprintf to snprintf.
modified: storage/connect/filamtxt.cpp
modified: storage/connect/filamvct.cpp
modified: storage/connect/javaconn.cpp
modified: storage/connect/javaconn.h
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jmgoconn.cpp
modified: storage/connect/jsonudf.cpp
modified: storage/connect/tabjmg.cpp
modified: storage/connect/tabpivot.cpp
modified: storage/connect/tabutil.cpp
- Fix MDEV-16895 CONNECT engine's get_error_message can cause buffer
overflow and server crash with long queries
ha_connect_cc: Update version.
get_error_message: Remove charset conversion.
modified: storage/connect/ha_connect.cc
- Fix a server crash on inserting bigint to a JDBC table
JDBConn::SetUUID:
Suppress check on ctyp that causes a server crash because ctyp
can be negative and this triggers an DEBUG_ASSERT on return.
modified: storage/connect/jdbconn.cpp
- Update jdbc.result
mysql-test/connect/r/jdbc.result: Recorded to reflect a message change.
modified: storage/connect/mysql-test/connect/r/jdbc.result
Also handle Postgresql sending type VARCHAR for TEXT column and
setting length to b x7FFFFFF when the length is unknown.
modified: storage/connect/Client.java
modified: storage/connect/JavaWrappers.jar
modified: storage/connect/JdbcInterface.java
modified: storage/connect/PostgresqlInterface.java
modified: storage/connect/global.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
modified: storage/connect/mysql-test/connect/r/jdbc_postgresql.result
modified: storage/connect/mysql-test/connect/t/jdbc_postgresql.test
modified: storage/connect/mysql-test/connect/t/jdbconn.inc
modified: storage/connect/plgdbsem.h
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabjdbc.h
modified: storage/connect/ha_connect.cc
- Include MONGO in all Java enabled distributions
Mongo will be enabled only for 10.2 and 10.3
modified: storage/connect/CMakeLists.txt
- Change JDBC_SUPPORT to JAVA_SUPPORT which also replaces MONGO_SUPPORT
MONGO_SUPPORT is now just used to enable the MONGO table type
modified: storage/connect/filter.cpp
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
modified: storage/connect/mongo.cpp
modified: storage/connect/mycat.cc
modified: storage/connect/plgdbutl.cpp
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
- Move MakeSelector function from FILTER to mongo.cpp
modified: storage/connect/filter.cpp
modified: storage/connect/filter.h
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/jmgoconn.cpp
modified: storage/connect/mongo.cpp
- Do mongo_init only on first use of the MongoDB C Driver
This will permit to delay load the mongo lib on Windows
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/cmgoconn.h
modified: storage/connect/ha_connect.cc
- Replace NEW_VAR by a test on MYSQL_VERSION_ID
modified: storage/connect/ha_connect.cc
- Suppress enable_mongo session variable
modified: storage/connect/ha_connect.cc
modified: storage/connect/mycat.cc
- Make some function headers identical in .h and .cc file
(replacing const char* by PCSZ)
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
- Change a parameter type from uchar* to const uchar*
(for ScanRecord and CheckRecord)
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
- Changes on LIKE and NOT LIKE does not fix a bug yet
modified: storage/connect/ha_connect.cc
- Suppress PIVOT_SUPPORT (PIVOT type is unconditionnal)
modified: storage/connect/ha_connect.cc
modified: storage/connect/mycat.cc
- Change the strz function from inline to static
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
- export the JavaConn class and the MgoColumns and IsNum functions
modified: storage/connect/javaconn.h
modified: storage/connect/json.h
modified: storage/connect/mongo.h
- Fix MDEV-13924
modified: storage/connect/jdbconn.cpp
- Make a temporary fix for the compiler bug in CalculateArray
modified: storage/connect/jsonudf.cpp
modified: storage/connect/tabjson.cpp
- Typo
modified: storage/connect/jdbccat.h
modified: storage/connect/reldef.h
modified: storage/connect/tabext.h
modified: storage/connect/tabjmg.cpp
modified: storage/connect/tabxml.h
modified: storage/connect/valblk.h
modified: storage/connect/value.h
modified: storage/connect/xtable.h
- Fix a bug in MONGO tests by changing 'MONGO' to $TYPE
modified: storage/connect/mysql-test/connect/t/mongo_test.inc
- Record test results to reflect all changes
modified: storage/connect/mysql-test/connect/r/json_java_2.result
modified: storage/connect/mysql-test/connect/r/json_java_3.result
modified: storage/connect/mysql-test/connect/r/json_mongo_c.result
modified: storage/connect/mysql-test/connect/r/mongo_c.result
modified: storage/connect/mysql-test/connect/r/mongo_java_2.result
modified: storage/connect/mysql-test/connect/r/mongo_java_3.result
This to have automatic closing in case of thrown error.
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/cmgoconn.h
modified: storage/connect/filamzip.cpp
modified: storage/connect/javaconn.cpp
modified: storage/connect/javaconn.h
modified: storage/connect/odbconn.cpp
modified: storage/connect/odbconn.h
modified: storage/connect/plgdbsem.h
modified: storage/connect/plgdbutl.cpp
- Fix INCOL bug when inserting several lines to MONGO tables
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/tabcmg.cpp
modified: storage/connect/tabjmg.cpp
- MONGO_SUPPORT is set for both MongoDB drivers
CMGO_SUPPORT is set only when the C driver is available
modified: storage/connect/CMakeLists.txt
modified: storage/connect/filter.h
modified: storage/connect/filter.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/mongo.cpp
modified: storage/connect/mycat.cc
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
- Separate enums JCATINFO and
modified: storage/connect/javaconn.h
modified: storage/connect/jdbconn.cpp
- Fix crash when executing JDBC catfunc=driver
modified: storage/connect/jdbconn.cpp
- Report an error when the Mongo driver if explicitly
specified and not supported.
modified: storage/connect/mongo.cpp
- Fix bug causing catalog JSON tables to fail
modified: storage/connect/tabjson.cpp
- Protect by mutex the Ready variable of the TBLTBM table type
modified: storage/connect/tabtbl.cpp
- Put testing of Thread TBL tables in a separate test
With added case and modified old case that could avoid the test to fail.
modified: storage/connect/mysql-test/connect/r/tbl.result
modified: storage/connect/mysql-test/connect/t/tbl.test
new file: storage/connect/mysql-test/connect/r/tbl_thread.result
new file: storage/connect/mysql-test/connect/t/tbl_thread.test
- jmongo3.test no more exists
deleted: storage/connect/mysql-test/connect/t/jmongo3.test
- Add new tests for the MONGO feature (disabled)
modified: storage/connect/mysql-test/connect/disabled.def
new file: storage/connect/mysql-test/connect/r/json_java_2.result
new file: storage/connect/mysql-test/connect/r/json_java_3.result
new file: storage/connect/mysql-test/connect/r/json_mongo_c.result
new file: storage/connect/mysql-test/connect/r/mongo_c.result
new file: storage/connect/mysql-test/connect/r/mongo_java_2.result
new file: storage/connect/mysql-test/connect/r/mongo_java_3.result
new file: storage/connect/mysql-test/connect/std_data/Mongo2.jar
new file: storage/connect/mysql-test/connect/std_data/cities.json
new file: storage/connect/mysql-test/connect/t/json_java_2.test
new file: storage/connect/mysql-test/connect/t/json_java_3.test
new file: storage/connect/mysql-test/connect/t/json_mongo_c.test
new file: storage/connect/mysql-test/connect/t/mongo.inc
new file: storage/connect/mysql-test/connect/t/mongo_c.test
new file: storage/connect/mysql-test/connect/t/mongo_java_2.test
new file: storage/connect/mysql-test/connect/t/mongo_java_3.test
new file: storage/connect/mysql-test/connect/t/mongo_test.inc
modified: storage/connect/ha_connect.cc
Add conditional SE exception support
modified: storage/connect/json.cpp
modified: storage/connect/plgdbutl.cpp
Change %p in %x in some sprintf functions.
This to avoid some compiler warnings.
modified: storage/connect/tabwmi.cpp
modified: storage/connect/tabxml.cpp
modified: storage/connect/value.h
Add JavaWrappers.jar to the class path
modified: storage/connect/jdbconn.cpp
Fix wrong declare (char *buf[256]; --> char buf[256];)
modified: storage/connect/xindex.cpp
Try to fix the INSTALL command.
modified: storage/connect/CMakeLists.txt
- Make some JDBC tests available on Windows
modified: storage/connect/mysql-test/connect/t/jdbc.test
modified: storage/connect/mysql-test/connect/t/jdbc_new.test
added: storage/connect/mysql-test/connect/t/windows.inc
Now it is also possible to escape it by a backslash.
modified: storage/connect/tabfmt.cpp
- Prepare making VEC table type support conditional.
VEC tables might be unsupported in future versions
modified: storage/connect/CMakeLists.txt
modified: storage/connect/mycat.cc
modified: storage/connect/reldef.cpp
modified: storage/connect/xindex.cpp
- MDEV-11067 suggested to add configuration support to the Apache wrapper.
Was added but commented out until prooved it is really useful.
modified: storage/connect/ApacheInterface.java
modified: storage/connect/ha_connect.cc
modified: storage/connect/jdbccat.h
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabjdbc.h
- Remove useless members.
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
- New UDF countin.
modified: storage/connect/jsonudf.cpp
modified: storage/connect/jsonudf.h
Now the null is tested using the result set getObject method.
modified: storage/connect/JdbcInterface.java
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
Was because the quoting character was always '"' instead of being
retrieve from the JDBC source.
modified: storage/connect/JdbcInterface.java
modified: storage/connect/jdbconn.cpp
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/JdbcInterface.java
- Change Version number and date
modified: storage/connect/ha_connect.cc
- Implement the test on connect_type_conv YES/NO
modified: storage/connect/jdbconn.cpp
modified: storage/connect/odbconn.cpp
- Fix MDEV-10520. Local schema was confused with remote schema
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabodbc.cpp
- Fix crash when using mapped indices. Was trying to write in a mapped
file declared as read only.
modified: storage/connect/xindex.cpp