From a1a7997bdc8ab0d99a1dfcb24155eca354f038b0 Mon Sep 17 00:00:00 2001 From: Nick Vyzas Date: Fri, 18 May 2018 15:25:54 +0300 Subject: [PATCH] Fixes crash on shutdown when connection is null --- lib/MySQL_Session.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 52ce1cd14..2e8fe768a 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -2989,8 +2989,12 @@ handler_again: case PROCESSING_STMT_PREPARE: { char sqlstate[10]; - sprintf(sqlstate,"%s",mysql_sqlstate(myconn->mysql)); - client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1,mysql_errno(myconn->mysql),sqlstate,(char *)mysql_stmt_error(myconn->query.stmt)); + if (myconn->mysql) { + sprintf(sqlstate,"%s",mysql_sqlstate(myconn->mysql)); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1,mysql_errno(myconn->mysql),sqlstate,(char *)mysql_stmt_error(myconn->query.stmt)); + } else { + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1, 2013, (char *)"" ,(char *)"Lost connection to MySQL server during query"); + } client_myds->pkt_sid++; if (previous_status.size()) { // an STMT_PREPARE failed @@ -3004,8 +3008,12 @@ handler_again: case PROCESSING_STMT_EXECUTE: { char sqlstate[10]; - sprintf(sqlstate,"%s",mysql_sqlstate(myconn->mysql)); - client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1,mysql_errno(myconn->mysql),sqlstate,(char *)mysql_stmt_error(myconn->query.stmt)); + if (myconn->mysql) { + sprintf(sqlstate,"%s",mysql_sqlstate(myconn->mysql)); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1,mysql_errno(myconn->mysql),sqlstate,(char *)mysql_stmt_error(myconn->query.stmt)); + } else { + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1, 2013, (char *)"" ,(char *)"Lost connection to MySQL server during query"); + } client_myds->pkt_sid++; } break;