Re: Problem with special characters in password when using SQLDriverConnect

From: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>
To: Jan-Peter Seifert <Jan-Peter(dot)Seifert(at)gmx(dot)de>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: Problem with special characters in password when using SQLDriverConnect
Date: 2013-05-16 14:58:46
Message-ID: 5194F426.1020000@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hi,

(2013/05/16 22:48), Jan-Peter Seifert wrote:
>
> Hello,
>
>> Gesendet: Mittwoch, 15. Mai 2013 um 17:31 Uhr
>> Von: "Hiroshi Inoue" <inoue(at)tpf(dot)co(dot)jp>
>
>> There already had been a patch in 09.00.0100 but this problem obviously persists in psqlODBC 09.01.0100 Unicode. Maybe this has been patched in the ANSI version only?
>
>> I don't understand why ANSI drivers work.
>
> That this has been fixed in the ANSI version only was just an assumption on my side, because the sudden increase of the 'known critical' characters seemed to be connected to the switch to the Unicode version of psqlODBC.
> It looks like the Unicode and the ANSI version use the 'same' internal functions though?

Yes it's essentially the same code.

>> Could you please try the dll on testing for 9.1.0300 at
>> http://www.ne.jp/asahi/inocchichichi/entrance/psqlodbc/index.html
>
> Thank you very much for the patch!
>
> We tested several passwords in connection with the SQLDriverConnect function and the Unicode version of psqlODBC:
>
> password: %2 (two chars!)
> submitted as:
> …;UID=user;PWD=%2; fails
> …;UID=user;PWD={%2}; works
>
> password: %25 (three chars!)
> …;UID=user;PWD=%25; fails
> …;UID=user;PWD={%25}; works

The psqlodbc driver expects Percent-Encoding for the password
option as well as the *Connect Settings* option unless the value
is enclosed with braces.

> password: }{
> …;UID=user;PWD={}{}; fails

The driver can't distinguish the first '}' from the terminating bracket.
Please look at http://msdn.microsoft.com/en-us/library/ms130822.aspx .

> password: abc
> …;UID=user;PWD=abc; works (as expected)
> …;UID=user;PWD={abc}; works
>
> Password: a;bc
> …;UID=user;PWD=a;bc; fails (as expected)
> …;UID=user;PWD={a;bc}; works
>
> Best regards,
>
> Peter

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message barryrbell 2013-05-16 19:32:12 Re: ODBC blank date.time setting
Previous Message Jan-Peter Seifert 2013-05-16 13:48:27 Re: Problem with special characters in password when using SQLDriverConnect