[MDEV-16672] Connect: Warnings with 10.0 Created: 2018-07-03  Updated: 2018-10-28  Resolved: 2018-08-20

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Connect
Affects Version/s: 10.0.35
Fix Version/s: 10.0.37, 10.1.36, 10.2.17, 10.3.9

Type: Bug Priority: Trivial
Reporter: markus makela Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: None


 Description   

The following warnings are logged when building the Connect storage engine. Most of them are about string truncation but some of them appear to be valid warnings.

/home/markusjm/mariadb-server-markus456/storage/connect/ha_connect.cc:435:6: warning: no previous declaration for ‘bool CondPushEnabled()’ [-Wmissing-declarations]
 bool CondPushEnabled(void) {return THDVAR(current_thd, cond_push);}
      ^~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/ha_connect.cc:458:6: warning: no previous declaration for ‘bool MongoEnabled()’ [-Wmissing-declarations]
 bool MongoEnabled(void) {return THDVAR(current_thd, enable_mongo);}
      ^~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/filamdbf.cpp: In member function ‘virtual bool DBFFAM::AllocateBuffer(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/filamdbf.cpp:640:18: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 11 equals destination size [-Wstringop-truncation]
           strncpy(descp->Name, cdp->GetName(), 11);
           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/messages.h:11,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/global.h:41,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/filamtxt.cpp:47:
/home/markusjm/mariadb-server-markus456/storage/connect/filamtxt.cpp: In member function ‘virtual int DOSFAM::RenameTempFile(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/engmsg.h:266:29: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 46 and 4141 [-Wformat-overflow=]
 #define MSG_RENAME_ERROR    "Error renaming %s to %s: %s"
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/global.h:42:36: note: in expansion of macro ‘MSG_RENAME_ERROR’
 #define MSG(I)                     MSG_##I
                                    ^~~~
/home/markusjm/mariadb-server-markus456/storage/connect/filamtxt.cpp:1176:27: note: in expansion of macro ‘MSG’
       sprintf(g->Message, MSG(RENAME_ERROR),
                           ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/filamtxt.cpp:1176:14: note: ‘sprintf’ output 22 or more bytes (assuming 8212) into a destination of size 4160
       sprintf(g->Message, MSG(RENAME_ERROR),
       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               filename, filetemp, strerror(errno));
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/filter.cpp: In member function ‘virtual void FILTER::Prints(PGLOBAL, char*, uint)’:
/home/markusjm/mariadb-server-markus456/storage/connect/filter.cpp:1636:20: warning: ‘char* strncat(char*, const char*, size_t)’ output may be truncated copying between 0 and 100 bytes from a string of length 100 [-Wstringop-truncation]
             strncat(bxp->Cold, bcp->Cold, FLEN-strlen(bxp->Cold));
             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/messages.h:11,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/global.h:41,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.h:8,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:16:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘my_bool CheckMemory(PGLOBAL, UDF_INIT*, UDF_ARGS*, uint, my_bool, my_bool, my_bool)’:
/home/markusjm/mariadb-server-markus456/storage/connect/engmsg.h:312:29: warning: ‘%s’ directive writing up to 4159 bytes into a region of size 4149 [-Wformat-overflow=]
 #define MSG_WORK_AREA       "Work area: %s"
                             ^~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/global.h:42:36: note: in expansion of macro ‘MSG_WORK_AREA’
 #define MSG(I)                     MSG_##I
                                    ^~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:1623:22: note: in expansion of macro ‘MSG’
      sprintf(errmsg, MSG(WORK_AREA), g->Message);
                      ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:1623:13: note: ‘sprintf’ output between 12 and 4171 bytes into a destination of size 4160
      sprintf(errmsg, MSG(WORK_AREA), g->Message);
      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘char* jbin_array(UDF_INIT*, UDF_ARGS*, char*, long unsigned int*, char*, char*)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:4634:11: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 139 bytes from a string of length 4159 [-Wstringop-truncation]
    strncpy(bsp->Msg, g->Message, 139);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘char* jbin_array_add_values(UDF_INIT*, UDF_ARGS*, char*, long unsigned int*, char*, char*)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:4705:12: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 255 bytes from a string of length 4159 [-Wstringop-truncation]
     strncpy(bsp->Msg, g->Message, BMX);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘char* jbin_object(UDF_INIT*, UDF_ARGS*, char*, long unsigned int*, char*, char*)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:4927:12: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 255 bytes from a string of length 4159 [-Wstringop-truncation]
     strncpy(bsp->Msg, g->Message, BMX);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘char* jbin_object_nonull(UDF_INIT*, UDF_ARGS*, char*, long unsigned int*, char*, char*)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:4983:12: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 255 bytes from a string of length 4159 [-Wstringop-truncation]
     strncpy(bsp->Msg, g->Message, BMX);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp: In function ‘char* jbin_object_key(UDF_INIT*, UDF_ARGS*, char*, long unsigned int*, char*, char*)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jsonudf.cpp:5042:12: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 255 bytes from a string of length 4159 [-Wstringop-truncation]
     strncpy(bsp->Msg, g->Message, BMX);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/messages.h:11,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/global.h:41,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/plugutil.cpp:78:
/home/markusjm/mariadb-server-markus456/storage/connect/plugutil.cpp: In function ‘_global* PlugInit(LPCSTR, uint)’:
/home/markusjm/mariadb-server-markus456/storage/connect/engmsg.h:312:29: warning: ‘%s’ directive output may be truncated writing up to 4159 bytes into a region of size 4148 [-Wformat-truncation=]
 #define MSG_WORK_AREA       "Work area: %s"
                             ^~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/global.h:42:36: note: in expansion of macro ‘MSG_WORK_AREA’
 #define MSG(I)                     MSG_##I
                                    ^~~~
/home/markusjm/mariadb-server-markus456/storage/connect/plugutil.cpp:165:40: note: in expansion of macro ‘MSG’
   snprintf(errmsg, sizeof(errmsg) - 1, MSG(WORK_AREA), g->Message);
                                        ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/plugutil.cpp:165:11: note: ‘snprintf’ output between 12 and 4171 bytes into a destination of size 4159
   snprintf(errmsg, sizeof(errmsg) - 1, MSG(WORK_AREA), g->Message);
   ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabext.cpp: In member function ‘virtual bool TDBEXT::MakeSrcdef(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabext.cpp:307:28: warning: ‘fil1’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    Query->SetLength(sprintf(Query->GetStr(), Srcdef, fil1));
                     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabjson.cpp:72:9: warning: no previous declaration for ‘_qryres* JSONColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool)’ [-Wmissing-declarations]
 PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info)
         ^~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabjson.cpp: In member function ‘bool JSONDISC::Find(PGLOBAL, PJVAL, int)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabjson.cpp:406:10: warning: ‘char* strcat(char*, const char*)’ accessing 66 or more bytes at offsets 201 and 136 may overlap 1 byte at offset 201 [-Wrestrict]
    strcat(fmt, colname);
    ~~~~~~^~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/taboccur.cpp: In member function ‘virtual bool TDBOCCUR::OpenDB(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/taboccur.cpp:453:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
     if (Xcolp)
     ^~
/home/markusjm/mariadb-server-markus456/storage/connect/taboccur.cpp:456:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   return Tdbp->OpenDB(g);
   ^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabpivot.cpp: In member function ‘_qryres* PIVAID::MakePivotColumns(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabpivot.cpp:190:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
   for (pcrp = &Qryp->Colresp; crp = *pcrp; )
   ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabpivot.cpp:208:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
    if (!Rblkp) {
    ^~
/home/markusjm/mariadb-server-markus456/storage/connect/tabutil.cpp: In member function ‘TDB* TDBPRX::GetSubTable(PGLOBAL, PTABLE, bool)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabutil.cpp:432:27: warning: ‘%s’ directive writing up to 4159 bytes into a region of size 4141 [-Wformat-overflow=]
       sprintf(g->Message, "Error accessing %s.%s: %s", db, name, buf);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~            ~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabutil.cpp:432:14: note: ‘sprintf’ output 20 or more bytes (assuming 4179) into a destination of size 4160
       sprintf(g->Message, "Error accessing %s.%s: %s", db, name, buf);
       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxcl.cpp: In member function ‘virtual void XCLCOL::ReadColumn(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabxcl.cpp:277:5: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
     for (p = Cp; *p == ' '; p++) ;
     ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxcl.cpp:279:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
   if ((Cp = strchr(Cp, Sep)))
   ^~
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp: In member function ‘virtual int VCTFAM::Cardinality(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp:309:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (Block < 0)
   ^~
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp:356:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
     return (Block) ? ((Block - 1) * Nrec + Last) : 0;
     ^~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/messages.h:11,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/global.h:41,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp:51:
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp: In member function ‘virtual int VECFAM::RenameTempFile(PGLOBAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/engmsg.h:266:29: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 46 and 4141 [-Wformat-overflow=]
 #define MSG_RENAME_ERROR    "Error renaming %s to %s: %s"
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/global.h:42:36: note: in expansion of macro ‘MSG_RENAME_ERROR’
 #define MSG(I)                     MSG_##I
                                    ^~~~
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp:2457:29: note: in expansion of macro ‘MSG’
         sprintf(g->Message, MSG(RENAME_ERROR),
                             ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/filamvct.cpp:2457:16: note: ‘sprintf’ output 22 or more bytes (assuming 8212) into a destination of size 4160
         sprintf(g->Message, MSG(RENAME_ERROR),
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 filename, filetemp, strerror(errno));
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxml.cpp: In function ‘_qryres* XMLColumns(PGLOBAL, char*, char*, PTOS, bool)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabxml.cpp:260:16: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 65 equals destination size [-Wstringop-truncation]
         strncpy(colname, node->GetName(g), sizeof(colname));
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxml.cpp:261:12: warning: ‘char* strncat(char*, const char*, size_t)’ output may be truncated copying between 0 and 63 bytes from a string of length 64 [-Wstringop-truncation]
     strncat(xcol->Name, colname, XLEN(xcol->Name));
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxml.cpp:240:16: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 65 equals destination size [-Wstringop-truncation]
         strncpy(colname, vp->atp->GetName(g), sizeof(colname));
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabxml.cpp:241:12: warning: ‘char* strncat(char*, const char*, size_t)’ output may be truncated copying between 0 and 63 bytes from a string of length 64 [-Wstringop-truncation]
     strncat(xcol->Name, colname, XLEN(xcol->Name));
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/javaconn.cpp: In member function ‘bool JAVAConn::Check(jint)’:
/home/markusjm/mariadb-server-markus456/storage/connect/javaconn.cpp:156:48: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    const char *utf = env->GetStringUTFChars(s, (jboolean)false);
                                                ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.cpp:45:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/javaconn.cpp:165:42: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
   Msg = (char*)env->GetStringUTFChars(s, (jboolean)false);
                                          ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.cpp:45:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp: In member function ‘virtual bool JDBConn::Connect(PJPARM)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:831:49: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    char *qch = (char*)env->GetStringUTFChars(s, (jboolean)false);
                                                 ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.h:4,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjdbc.h:48,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:49:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:835:43: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    Msg = (char*)env->GetStringUTFChars(s, (jboolean)false);
                                           ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.h:4,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjdbc.h:48,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:49:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp: In member function ‘virtual void JDBConn::SetColumnValue(int, PSZ, PVAL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:1013:39: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    field = env->GetStringUTFChars(cn, (jboolean)false);
                                       ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.h:4,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjdbc.h:48,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:49:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:1087:51: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    const char *field = env->GetStringUTFChars(cn, (jboolean)false);
                                                   ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.h:4,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjdbc.h:48,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:49:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp: In member function ‘_qryres* JDBConn::GetMetaData(PGLOBAL, PCSZ)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:1465:41: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    name = env->GetStringUTFChars(label, (jboolean)false);
                                         ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.h:4,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjdbc.h:48,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jdbconn.cpp:49:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp: In member function ‘char* JMgoConn::GetDocument()’:
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:525:43: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    doc = (PSZ)env->GetStringUTFChars(jdc, (jboolean)false);
                                           ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.h:8,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:23:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp: In member function ‘_jobject* JMgoConn::MakeDoc(PGLOBAL, PJNCOL)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:654:2: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
  for (PJKC kp = jcp->Klist; kp; kp = kp->Next)
  ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:693:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
   return parent;
   ^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp: In member function ‘virtual char* JMgoConn::GetColumnValue(PSZ)’:
/home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:810:42: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
    fld = (PSZ)env->GetStringUTFChars(fn, (jboolean)false);
                                          ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.h:8,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.cpp:23:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp: In member function ‘bool JMGDISC::ColDesc(PGLOBAL, jobject, char*, char*, int, int)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp:104:43: warning: invalid conversion from ‘jboolean’ {aka ‘unsigned char’} to ‘jboolean*’ {aka ‘unsigned char*’} [-fpermissive]
   key = Jcp->env->GetStringUTFChars(jkey, (jboolean)false);
                                           ^~~~~~~~~~~~~~~
In file included from /home/markusjm/mariadb-server-markus456/storage/connect/javaconn.h:14,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/jmgoconn.h:8,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.h:9,
                 from /home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp:23:
/usr/lib/jvm/java/include/jni.h:1616:58: note:   initializing argument 2 of ‘const char* JNIEnv_::GetStringUTFChars(jstring, jboolean*)’
     const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
                                                ~~~~~~~~~~^~~~~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp: In member function ‘virtual char* JMGCOL::GetJpath(PGLOBAL, bool)’:
/home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp:445:4: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
    for (p1 = p2 = projpath; *p1; p1++)
    ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/tabjmg.cpp:460:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
     *p2 = 0;
     ^
/home/markusjm/mariadb-server-markus456/storage/connect/zip.c: In function ‘zip64local_SearchCentralDir’:
/home/markusjm/mariadb-server-markus456/storage/connect/zip.c:521:5: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
     for (i=(int)uReadSize-3; (i--)>0;)
     ^~~
/home/markusjm/mariadb-server-markus456/storage/connect/zip.c:529:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
       if (uPosFound!=0)
       ^~



 Comments   
Comment by Olivier Bertrand [ 2018-08-08 ]

Thanks for reporting. Indeed some of them could make buffer overflow and this gave me a chance to revisit getting UTF strings from Jana INI and avoid potential memory leak.

Generated at Thu Feb 08 08:30:41 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.