Skip to content

Commit

Permalink
Added check of mysql_stmt_store_result result
Browse files Browse the repository at this point in the history
  • Loading branch information
lawrinn committed Oct 25, 2016
1 parent 7fadd77 commit cd32260
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
6 changes: 4 additions & 2 deletions ma_error.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ char* MADB_PutErrorPrefix(MADB_Dbc *dbc, MADB_Error *error)
}


void MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr)
SQLRETURN MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr)
{
char *Sqlstate= NULL, *Errormsg= NULL;
int NativeError= 0;
Expand Down Expand Up @@ -197,12 +197,14 @@ void MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr)
if (Error->SqlState[0] == '0')
Error->ReturnValue= (Error->SqlState[1] == '0') ? SQL_SUCCESS :
(Error->SqlState[1] == '1') ? SQL_SUCCESS_WITH_INFO : SQL_ERROR;

return Error->ReturnValue;
}

/* {{{ MADB_SetError */
SQLRETURN MADB_SetError(MADB_Error *Error,
unsigned int SqlErrorCode,
char *NativeErrorMsg,
const char *NativeErrorMsg,
unsigned int NativeError)
{
unsigned int ErrorCode= SqlErrorCode;
Expand Down
4 changes: 2 additions & 2 deletions ma_error.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@ enum enum_madb_error {
};
char* MADB_PutErrorPrefix(MADB_Dbc *dbc, MADB_Error *error);

SQLRETURN MADB_SetError(MADB_Error *Error, unsigned int SqlErrorCode, char *SqlErrorMsg, unsigned int NativeError);
void MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr);
SQLRETURN MADB_SetError(MADB_Error *Error, unsigned int SqlErrorCode, const char *SqlErrorMsg, unsigned int NativeError);
SQLRETURN MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *Ptr);
void MADB_CopyError(MADB_Error *ErrorTo, MADB_Error *ErrorFrom);
SQLRETURN MADB_GetDiagRec(MADB_Error *Err, SQLSMALLINT RecNumber,
void *SQLState, SQLINTEGER *NativeErrorPtr,
Expand Down
13 changes: 9 additions & 4 deletions ma_statement.c
Original file line number Diff line number Diff line change
Expand Up @@ -1274,9 +1274,14 @@ SQLRETURN MADB_StmtExecute(MADB_Stmt *Stmt)

/* Todo: for SQL_CURSOR_FORWARD_ONLY we should use cursor and prefetch rows */
/*************************** mysql_stmt_store_result ******************************/
mysql_stmt_store_result(Stmt->stmt);
/*todo: memleak */
// mysql_stmt_result_metadata(Stmt->stmt);
if (mysql_stmt_store_result(Stmt->stmt) != 0)
{
UNLOCK_MARIADB(Stmt->Connection);
if (DefaultResult)
mysql_free_result(DefaultResult);

return MADB_SetNativeError(&Stmt->Error, SQL_HANDLE_STMT, Stmt->stmt);
}

Stmt->Cursor.Position= -1;

Expand Down Expand Up @@ -1967,7 +1972,7 @@ SQLRETURN MADB_StmtGetAttr(MADB_Stmt *Stmt, SQLINTEGER Attribute, SQLPOINTER Val
*(SQLPOINTER *)ValuePtr= (SQLPOINTER)(SQLULEN)Stmt->Ipd->Header.BindType;
break;
case SQL_ATTR_PARAMSET_SIZE:
*(SQLUINTEGER *)ValuePtr= Stmt->Apd->Header.BindType;
*(SQLULEN *)ValuePtr= Stmt->Apd->Header.BindType;
break;
case SQL_ATTR_ASYNC_ENABLE:
*(SQLPOINTER *)ValuePtr= SQL_ASYNC_ENABLE_OFF;
Expand Down

0 comments on commit cd32260

Please sign in to comment.