From 70a17c48b656460d13f669c5885b92d5226b6749 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Mon, 17 Feb 2020 15:19:16 +0100 Subject: [PATCH] pgsql: Avoid output_to() race on large requests. --- lib/modules/Sql.pmod/pgsql_util.pmod | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index 3834a21817..640954563a 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -565,7 +565,8 @@ outer: add(PGFLUSH); case SENDOUT:; } - if (towrite = sizeof(this)) { + Thread.MutexKey lock = shortmux->trylock(); + if (lock && (towrite = sizeof(this))) { PD("%d>Sendcmd %O\n", socket->query_fd(), ((string)this)[..towrite-1]); towrite -= output_to(socket, towrite); -- GitLab