summaryrefslogtreecommitdiff
path: root/ext/pgsql/pgsql.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-04-08 17:06:03 +0300
committerDmitry Stogov <dmitry@zend.com>2015-04-08 17:06:03 +0300
commit151b4ea3cd6f4b6b431284daf8a90c51765f22fa (patch)
tree3234c3a90a4118b04620e14d4582c3cd556f7386 /ext/pgsql/pgsql.c
parentb71fbade32e6821d30db2dc14644527a033f2cd3 (diff)
downloadphp-git-151b4ea3cd6f4b6b431284daf8a90c51765f22fa.tar.gz
Fixed unsigned underflow
Diffstat (limited to 'ext/pgsql/pgsql.c')
-rw-r--r--ext/pgsql/pgsql.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 9beb72890f..536c94157a 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -882,15 +882,14 @@ static char *php_pgsql_PQescapeInternal(PGconn *conn, const char *str, size_t le
/* {{{ _php_pgsql_trim_message */
static char * _php_pgsql_trim_message(const char *message, size_t *len)
{
- register size_t i = strlen(message)-1;
+ register size_t i = strlen(message);
- if (i>1 && (message[i-1] == '\r' || message[i-1] == '\n') && message[i] == '.') {
+ if (i>2 && (message[i-2] == '\r' || message[i-2] == '\n') && message[i-1] == '.') {
--i;
}
- while (i>0 && (message[i] == '\r' || message[i] == '\n')) {
+ while (i>1 && (message[i-1] == '\r' || message[i-1] == '\n')) {
--i;
}
- ++i;
if (len) {
*len = i;
}