View Single Post

   
  #1 (permalink)  
Old 04-16-2008, 02:10 AM
Rick Hair
 
Posts: n/a
Default Username and password from DSN being overwritten (fix included)

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);


Reply With Quote