Skip site navigation (1) Skip section navigation (2)

Libpq free bug? (Was: [ODBC] IIS Postgres ASP ADO - Problem)

From: "Dave Page" <dpage(at)vale-housing(dot)co(dot)uk>
To: <pgsql-bugs(at)postgresql(dot)org>
Cc: <pgsql-odbc(at)postgresql(dot)org>
Subject: Libpq free bug? (Was: [ODBC] IIS Postgres ASP ADO - Problem)
Date: 2005-08-01 20:06:18
Message-ID: E7F85A1B5FF8D44C8A1AF6885BC9A0E4AC96B5@ratbert.vale-housing.co.uk (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-odbc
Forwarded to -bugs in case it gets missed.

This looks like it might be an issue to me, though I may well have
overlooked something in my brief look at the code. 

Regards, Dave

> -----Original Message-----
> From: pgsql-odbc-owner(at)postgresql(dot)org 
> [mailto:pgsql-odbc-owner(at)postgresql(dot)org] On Behalf Of Marko Ristola
> Sent: 01 August 2005 18:15
> To: Joel Fradkin
> Cc: 'James Dornan'; pgsql-odbc(at)postgresql(dot)org
> Subject: Re: [ODBC] IIS Postgres ASP ADO - Problem
> 
> 
> I found a crashing problem during CONNECT into a database.
> 
> Here is the problem description:
> 
> Used Environment:
> libpq-API under PostgreSQL 8.0.3
> CVS HEAD of psqlodbc
> 
> libpq does have a problem with freeing memory, that has not 
> been alloced
> with malloc()!
> 
> Here is the problem (I don't know, wether the PostgreSQL CVS 
> HEAD has a
> fix for this):
> 
> postgresql-8.0.3/src/interfaces/libpq/fe-connect.c, function
> conninfo_parse():
> 
>         /* Make a working copy of PQconninfoOptions */
>         options = malloc(sizeof(PQconninfoOptions));
> ...
>          memcpy(options, PQconninfoOptions, 
> sizeof(PQconninfoOptions));
> 
> Unfortunately PQconninfoOptions[] contains only char*val 
> style pointers
> instead of
> char val[32] type character containers.
> Because of this, the assumption, that memcpy() is enough to copy the
> structure, is not
> true anymore. You should NOT copy a static structure this way!
> 
> Working code would be something like this:
> 
> options = malloc(sizeof(PQconninfoOptions));
> memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));
> for (i=0; PQconninfoOptions[i].val != NULL; i++) {
>   options[i].val = strdup(PQconninfoOptions[i].val);
>   ... same for all other values
> }
> NULL termination.
> 
> 
> 
> Because of this, isql fails with me at the beginning, maybe because
> dmalloc library, that I use for testing, discovered the problem.
> 
> Marko Ristola
> 
> 
> Joel Fradkin wrote:
> 
> >James,
> >
> >The odbc is not working well for me (I can connect but get 
> intermittent
> >issues of the IIS server locking up in regards to connectivity).
> >My understanding is the snapshot version is the best odbc 
> out at this time.
> >
> >Also can you connect via pgadmin (IE have the hba and config 
> files set to
> >allow external connections)?
> >
> >My conection is not using dsn, but I did get dsn to work in testing.
> >My dsnless string is 
> >
> >Session("StringConn") =
> >"DRIVER={PostgreSQL};DATABASE=wazagua;SERVER=192.168.123.121;
PORT=5432;UID=p
> >ostgres;PWD=;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;ShowOidCo
lumn=0;RowVersi
> >oning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=409
6;UnknownSizes=
> >0;MaxVarcharSize=254;MaxLongVarcharSize=8190;Debug=0;CommLog=
> 0;Optimizer=1;K
> >sqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVar
char=0;BoolsAsC
> >har=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LF
Conversion=1;Up
> >datableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;Byte
aAsLongVarBinar
> >y=0;UseServerSidePrepare=0"
> >
> >My test using dsn used
> >Session("StringConn") ="DSN=postgresql;" & _
> >         "UID=postgres;" & _
> >         "PWD=;" & _
> >         "Database=wazuni;"
> >
> >asp code to use connection is :
> >  dim Arec, Acmd, SQL ,AConn
> >  set Arec = server.CreateObject("ADODB.Recordset")
> >  Set AConn = Server.CreateObject("ADODB.CONNECTION")
> >  set Acmd = server.CreateObject("ADODB.Command")  
> >  AConn.ConnectionTimeOut=30
> >  AConn.commandtimeout=30
> >  AConn.Open Session("StringConn")
> >
> >For .net I use the npgsql .net objects.
> >
> >Hope this helps you.
> >
> >Joel Fradkin
> > 
> >
> > 
> >
> >-----Original Message-----
> >From: James Dornan [mailto:james(at)catch22(dot)com] 
> >Sent: Sunday, July 31, 2005 4:44 PM
> >To: jfradkin(at)wazagua(dot)com
> >Subject: IIS Postgres ASP ADO - Problem
> >
> >
> >  I noticed more than a few post from you about trying to 
> get Postgres 
> >working with ODBC.
> >I'm hoping that maybe you would share some of that information. I am 
> >running IIS under
> >windos 2003 server, and the latest(8.0.3) Postgres server on 
> the same 
> >machine. I cannot
> >connect no matter what I do. I have tried everything.
> >
> >  The funny part is that I'm not new to ODBC, or windows. 
> I've worked 
> >with windows all
> >the time, but just can't figure this one out. I've tried using a 
> >connection string, a DSN,
> >reinstalling, IIS, Postgres, ODBC drivers, MDAC, Jet, and so 
> on. I still 
> >have the same problem.
> >The odbc drive and it's dependant DDLs are in the path. The 
> permisions 
> >are wide open
> >(for testing this specific problem).
> >
> >  Is there any insight you could shed on the dark world of 
> windows and 
> >ODBC, where feed-
> >back is rare.
> >
> >  Thanks for any help you can provide.
> >
> >-- James
> >
> >
> >---------------------------(end of 
> broadcast)---------------------------
> >TIP 2: Don't 'kill -9' the postmaster
> >  
> >
> 
> 
> ---------------------------(end of 
> broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
> 

Responses

pgsql-odbc by date

Next:From: Marko RistolaDate: 2005-08-01 20:26:05
Subject: Re: Lowercase folding - simple patch?
Previous:From: Eric EDate: 2005-08-01 19:36:15
Subject: Re: problem odbc 8.0 with EOModeler

pgsql-bugs by date

Next:From: Marko RistolaDate: 2005-08-01 21:12:47
Subject: Re: Libpq free bug? (Was: [ODBC] IIS Postgres ASP ADO - Problem)
Previous:From: Eric EDate: 2005-08-01 19:36:15
Subject: Re: problem odbc 8.0 with EOModeler

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group