Username and password from DSN being overwritten (fix included)

Username and password from DSN being overwritten (fix included)

am 17.10.2006 00:56:24 von Rick Hair

This is a multi-part message in MIME format.

------=_NextPart_000_0054_01C6F14C.656D7AC0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi all,



I ran into a problem recently trying to use the latest CVS version of the
ODBC driver with Business Objects XI Release 2. The username and password
specified for a connection in the ODBC setup panel were being ignored by the
driver. I discovered that after some recent changes to the make_string()
function in misc.c, the DSN defaults were always being overwritten by
whatever username and password were passed to PGAPI_Connect(), even if they
were empty strings.



Below is a (very small) patch to connection.c to work around the issue.



Thanks,

Rick Hair







*** psqlodbc.old/connection.c 2006-10-13 08:13:31.000000000 -0500

--- psqlodbc.new/connection.c 2006-10-16 17:09:31.000000000 -0500

***************

*** 127,134 ****

* override values from DSN info with UID and authStr(pwd) This only

* occurs if the values are actually there.

*/

! make_string(szUID, cbUID, ci->username, sizeof(ci->username));

! make_string(szAuthStr, cbAuthStr, ci->password, sizeof(ci->password));



/* fill in any defaults */

getDSNdefaults(ci);

--- 127,136 ----

* override values from DSN info with UID and authStr(pwd) This only

* occurs if the values are actually there.

*/

! if (cbUID > 0)

! make_string(szUID, cbUID, ci->username, sizeof(ci->username));

! if (cbAuthStr > 0)

! make_string(szAuthStr, cbAuthStr, ci->password,
sizeof(ci->password));



/* fill in any defaults */

getDSNdefaults(ci);


------=_NextPart_000_0054_01C6F14C.656D7AC0
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">


charset=3Dus-ascii">









Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>Hi =
all,



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>I ran =
into a
problem recently trying to use the latest CVS version of the ODBC driver =
with
Business Objects XI Release 2. The username and password specified for a
connection in the ODBC setup panel were being ignored by the driver. I
discovered that after some recent changes to the make_string() function =
in
misc.c, the DSN defaults were always being overwritten by whatever =
username and
password were passed to PGAPI_Connect(), even if they were empty =
strings.



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>Below is =
a (very small)
patch to connection.c to work around the =
issue.



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'>Thanks,



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>Rick =
Hair



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'> 



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>***
psqlodbc.old/connection.c 2006-10-13 08:13:31.000000000 =
-0500



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>---
psqlodbc.new/connection.c 2006-10-16 17:09:31.000000000 =
-0500



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans =
Typewriter"'>***************



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>*** =
127,134 ****



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     *
override values from DSN info with UID and authStr(pwd) This =
only



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     *
occurs if the values are actually there.



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     */



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
    make_string(szUID,
cbUID, ci->username, =
sizeof(ci->username));



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
    make_string(szAuthStr,
cbAuthStr, ci->password, =
sizeof(ci->password));



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
    /*
fill in any defaults */



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
    getDSNdefaults(ci);



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>--- =
127,136 ----



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     *
override values from DSN info with UID and authStr(pwd) This =
only



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     *
occurs if the values are actually there.



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
     */



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
    if
(cbUID > 0)



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
          =
make_string(szUID,
cbUID, ci->username, =
sizeof(ci->username));



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
    if
(cbAuthStr > 0)



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>! =
          =
make_string(szAuthStr,
cbAuthStr, ci->password, =
sizeof(ci->password));



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
    /*
fill in any defaults */



Typewriter"> style=3D'font-size:10.0pt;font-family:"Lucida Sans Typewriter"'>  =
    getDSNdefaults(ci);









------=_NextPart_000_0054_01C6F14C.656D7AC0--

Re: Username and password from DSN being overwritten (fix

am 17.10.2006 18:13:45 von Hiroshi Inoue

Rick Hair wrote:
> Hi all,
>
> I ran into a problem recently trying to use the latest CVS version of the
> ODBC driver with Business Objects XI Release 2. The username and password
> specified for a connection in the ODBC setup panel were being ignored by the
> driver. I discovered that after some recent changes to the make_string()
> function in misc.c, the DSN defaults were always being overwritten by
> whatever username and password were passed to PGAPI_Connect(), even if they
> were empty strings.
>
> Below is a (very small) patch to connection.c to work around the issue.
>
> ! if (cbUID > 0)
>
> ! make_string(szUID, cbUID, ci->username, sizeof(ci->username));
>
> ! if (cbAuthStr > 0)
>
> ! make_string(szAuthStr, cbAuthStr, ci->password,
> sizeof(ci->password));
>

The above patch seems to be wrong because cbUID(cvAuthStr) can be SQL_NTS.
OK I would take care of this case.
Please try the snapshot dll at
http://www.geocities.jp/inocchichichi/psqlodbc/index.html
..

regards,
Hiroshi Inoue


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

Re: Username and password from DSN being overwritten (fix

am 19.10.2006 15:30:16 von Rick Hair

That did the trick; Business Objects seems to be working fine with the
new snapshot.

Thanks,
Rick Hair

Hiroshi Inoue wrote:
>
> The above patch seems to be wrong because cbUID(cvAuthStr) can be SQL_NTS.
> OK I would take care of this case.
> Please try the snapshot dll at
> http://www.geocities.jp/inocchichichi/psqlodbc/index.html
> .
>
> regards,
> Hiroshi Inoue
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org