Re: IIS Postgres ASP ADO - Problem

From: Marko Ristola <Marko(dot)Ristola(at)kolumbus(dot)fi>
To: Joel Fradkin <jfradkin(at)wazagua(dot)com>
Cc: 'James Dornan' <james(at)catch22(dot)com>, pgsql-odbc(at)postgresql(dot)org
Subject: Re: IIS Postgres ASP ADO - Problem
Date: 2005-08-01 17:14:30
Message-ID: 42EE5876.7020109@kolumbus.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc


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;ShowOidColumn=0;RowVersi
>oning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=
>0;MaxVarcharSize=254;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;K
>sqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsC
>har=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;Up
>datableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinar
>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
>
>

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Marko Ristola 2005-08-01 17:37:16 Re: IIS Postgres ASP ADO - Problem
Previous Message Marko Ristola 2005-08-01 16:27:58 Re: Lowercase folding - simple patch?