summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2010-01-31 15:28:50 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2010-01-31 15:28:50 -0500
commiteb165d80ac5fa8e9c19e50671de6e0c1173fe5e8 (patch)
tree51b1935e4a473df79627ff6088a3e30b08fe60e8
parent43566cdd19751c5f308b451ee99aeecc57b5f0b3 (diff)
A litter more cautious about NULL applications; plug a memory leak in some Postgres functions
-rw-r--r--src/c/urweb.c2
-rw-r--r--src/postgres.sml6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c
index 0ec741cc..ad0d33d9 100644
--- a/src/c/urweb.c
+++ b/src/c/urweb.c
@@ -2884,7 +2884,7 @@ int uw_rollback(uw_context ctx) {
if (ctx->transactionals[i].free)
ctx->transactionals[i].free(ctx->transactionals[i].data);
- return ctx->app->db_rollback(ctx);
+ return ctx->app ? ctx->app->db_rollback(ctx) : 0;
}
void uw_commit(uw_context ctx) {
diff --git a/src/postgres.sml b/src/postgres.sml
index 59fa3330..a3f33db1 100644
--- a/src/postgres.sml
+++ b/src/postgres.sml
@@ -411,6 +411,8 @@ fun init {dbstring, prepared = ss, tables, views, sequences} =
newline],
string "}",
newline,
+ string "PQclear(res);",
+ newline,
string "return 0;",
newline,
string "}",
@@ -434,6 +436,8 @@ fun init {dbstring, prepared = ss, tables, views, sequences} =
newline],
string "}",
newline,
+ string "PQclear(res);",
+ newline,
string "return 0;",
newline,
string "}",
@@ -457,6 +461,8 @@ fun init {dbstring, prepared = ss, tables, views, sequences} =
newline],
string "}",
newline,
+ string "PQclear(res);",
+ newline,
string "return 0;",
newline,
string "}",