Re: IIS Postgres ASP ADO - Problem - Mailing list pgsql-odbc

From Marko Ristola
Subject Re: IIS Postgres ASP ADO - Problem
Date
Msg-id 42EE5876.7020109@kolumbus.fi
Whole thread Raw
In response to Re: IIS Postgres ASP ADO - Problem  ("Joel Fradkin" <jfradkin@wazagua.com>)
Responses Re: IIS Postgres ASP ADO - Problem  (Marko Ristola <Marko.Ristola@kolumbus.fi>)
List 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@catch22.com]
>Sent: Sunday, July 31, 2005 4:44 PM
>To: jfradkin@wazagua.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
>
>


pgsql-odbc by date:

Previous
From: Marko Ristola
Date:
Subject: Re: Lowercase folding - simple patch?
Next
From: Marko Ristola
Date:
Subject: Re: IIS Postgres ASP ADO - Problem