From 89dbb5c8bc4a8eb42b8dc9652b66101b0630fdfe Mon Sep 17 00:00:00 2001
From: "Stephen R. van den Berg" <srb@cuci.nl>
Date: Thu, 17 May 2018 09:47:40 +0200
Subject: [PATCH] pgsql: Accomodate for sscanf() using range_error(0).

---
 lib/modules/Sql.pmod/pgsql_util.pmod | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 2488dc1dde..81d1df436c 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -347,8 +347,12 @@ class conxiin {
 
   protected final bool range_error(int howmuch) {
 #ifdef PG_DEBUG
-    if (howmuch <= 0)
-      error("Out of range %d\n", howmuch);
+    if (howmuch < 0) {
+      int available = unread(0);
+      unread(available);
+      error("Out of range %d %O %O\n", howmuch,
+       ((string)this)[.. available-1], ((string)this)[available ..]);
+    }
 #endif
     if (fillread) {
       Thread.MutexKey lock = fillreadmux->lock();
-- 
GitLab