Add null check to SqlStateMatchesCategory()

Fixes #634
pull/636/head
Metin Doslu 2016-07-01 13:53:44 +03:00 committed by Andres Freund
parent e064cacea9
commit e5ecf92328
1 changed files with 15 additions and 7 deletions

View File

@ -192,19 +192,27 @@ PurgeConnection(PGconn *connection)
/*
* SqlStateMatchesCategory returns true if the given sql state is in the given
* error category. Note that we use ERRCODE_TO_CATEGORY macro to determine error
* category of the sql state and expect the caller to use the same macro for the
* error category.
* SqlStateMatchesCategory returns true if the given sql state (which may be
* NULL if unknown) is in the given error category. Note that we use
* ERRCODE_TO_CATEGORY macro to determine error category of the sql state and
* expect the caller to use the same macro for the error category.
*/
bool
SqlStateMatchesCategory(char *sqlStateString, int category)
{
bool sqlStateMatchesCategory = false;
int sqlState = MAKE_SQLSTATE(sqlStateString[0], sqlStateString[1], sqlStateString[2],
int sqlState = 0;
int sqlStateCategory = 0;
if (sqlStateString == NULL)
{
return false;
}
sqlState = MAKE_SQLSTATE(sqlStateString[0], sqlStateString[1], sqlStateString[2],
sqlStateString[3], sqlStateString[4]);
int sqlStateCategory = ERRCODE_TO_CATEGORY(sqlState);
sqlStateCategory = ERRCODE_TO_CATEGORY(sqlState);
if (sqlStateCategory == category)
{
sqlStateMatchesCategory = true;