From 2fba127585b4a009d52ac5ca924810ce09304e1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Tue, 1 Jun 1999 23:04:18 +0200
Subject: [PATCH] Backpatched fix for obscure memory leak from Pike 0.7:1.18.

Rev: src/modules/Odbc/odbc.c:1.16
---
 src/modules/Odbc/odbc.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/modules/Odbc/odbc.c b/src/modules/Odbc/odbc.c
index 672fd40ab5..d6f3f40ebe 100644
--- a/src/modules/Odbc/odbc.c
+++ b/src/modules/Odbc/odbc.c
@@ -1,5 +1,5 @@
 /*
- * $Id: odbc.c,v 1.15 1999/03/24 02:00:08 marcus Exp $
+ * $Id: odbc.c,v 1.16 1999/06/01 21:04:18 grubba Exp $
  *
  * Pike interface to ODBC compliant databases.
  *
@@ -16,7 +16,7 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
-RCSID("$Id: odbc.c,v 1.15 1999/03/24 02:00:08 marcus Exp $");
+RCSID("$Id: odbc.c,v 1.16 1999/06/01 21:04:18 grubba Exp $");
 
 #include "interpret.h"
 #include "object.h"
@@ -203,14 +203,25 @@ static void f_create(INT32 args)
    * database argument is ignored
    */
 
-  if (!pwd) {
-    pwd = make_shared_string("");
+  if (!server) {
+    push_constant_text("default");
+    server = sp[-1].u.string;
+    args++;
+  }
+  if (!database) {
+    push_constant_text("");
+    database = sp[-1].u.string;
+    args++;
   }
   if (!user) {
-    user = make_shared_string("");
+    push_constant_text("");
+    user = sp[-1].u.string;
+    args++;
   }
-  if (!server) {
-    server = make_shared_string("default");
+  if (!pwd) {
+    push_constant_text("");
+    pwd = sp[-1].u.string;
+    args++;
   }
   if (PIKE_ODBC->flags & PIKE_ODBC_CONNECTED) {
     PIKE_ODBC->flags &= ~PIKE_ODBC_CONNECTED;
-- 
GitLab