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