--- sql/mysql/parser3mysql.C 2012/03/16 10:05:04 1.40 +++ sql/mysql/parser3mysql.C 2012/06/15 09:09:33 1.43 @@ -15,7 +15,7 @@ #include "pa_sql_driver.h" -volatile const char * IDENT_PARSER3MYSQL_C="$Id: parser3mysql.C,v 1.40 2012/03/16 10:05:04 moko Exp $" IDENT_PA_SQL_DRIVER_H; +volatile const char * IDENT_PARSER3MYSQL_C="$Id: parser3mysql.C,v 1.43 2012/06/15 09:09:33 moko Exp $" IDENT_PA_SQL_DRIVER_H; #define NO_CLIENT_LONG_LONG #include "mysql.h" @@ -266,7 +266,7 @@ public: } if(charset){ - char statement[MAX_STRING]="SET CHARACTER SET "; + char statement[MAX_STRING+1]="SET CHARACTER SET "; strncat(statement, charset, MAX_STRING); _exec(connection, statement); } @@ -394,9 +394,9 @@ public: memcpy(cur, astatement, statement_size); cur+=statement_size; cur+=sprintf(cur, " LIMIT "); if(offset) - cur+=snprintf(cur, MAX_NUMBER+1, "%u,", offset); + cur+=snprintf(cur, MAX_NUMBER, "%lu,", offset); if(limit!=SQL_NO_LIMIT) - cur+=snprintf(cur, MAX_NUMBER, "%u", limit); + cur+=snprintf(cur, MAX_NUMBER, "%lu", limit); statement=statement_limited; } else statement=astatement; @@ -555,8 +555,11 @@ private: // mysql client library funcs private: // mysql client library funcs linking const char *dlink(const char *dlopen_file_spec) { - if(lt_dlinit()) - return lt_dlerror(); + if(lt_dlinit()){ + if(const char* result=lt_dlerror()) + return result; + return "can not prepare to dynamic loading"; + } lt_dlhandle handle=lt_dlopen(dlopen_file_spec);