Libpq ssl fix

Started by Andreas Pflugabout 22 years ago9 messagespatches
Jump to latest
#1Andreas Pflug
pgadmin@pse-consulting.de

init_ssl_system will return 0 on success and -1 on failure, which will
be interpreted just the other way round in initialize_SSL.
Patch appended.

Regards,
Andreas

Attachments:

fe-secure.c.difftext/plain; name=fe-secure.c.diffDownload+1-1
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andreas Pflug (#1)
Re: Libpq ssl fix

Andreas Pflug <pgadmin@pse-consulting.de> writes:

init_ssl_system will return 0 on success and -1 on failure, which will
be interpreted just the other way round in initialize_SSL.
Patch appended.

Hmm, that looks backwards to me too, but this would seem to imply that
Manfred Spraul failed to test his last patch at all. Manfred, care to
explain why we shouldn't revert that patch in toto?

2004-03-23 22:44 momjian

* doc/src/sgml/libpq.sgml, src/backend/libpq/md5.c,
src/interfaces/libpq/fe-auth.c, src/interfaces/libpq/fe-connect.c,
src/interfaces/libpq/fe-secure.c, src/interfaces/libpq/libpq-fe.h,
src/interfaces/libpq/libpq-int.h: Add thread locking to SSL and
Kerberos connections.

I have removed the docs mentioning that SSL and Kerberos are not
thread-safe.

Manfred Spraul

regards, tom lane

#3Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Tom Lane (#2)
Re: Libpq ssl fix

Tom Lane wrote:

Andreas Pflug <pgadmin@pse-consulting.de> writes:

init_ssl_system will return 0 on success and -1 on failure, which will
be interpreted just the other way round in initialize_SSL.
Patch appended.

Hmm, that looks backwards to me too, but this would seem to imply that
Manfred Spraul failed to test his last patch at all. Manfred, care to
explain why we shouldn't revert that patch in toto?

FYI:
I tried to compile libpq with ENABLE_THREAD_SAFETY under win32, and
quickly stopped it because the implementation has pthread stuff buried
deep inside the sources. No pthread under win32... This needs quite some
portability work.

Regards,
Andreas

#4Manfred Spraul
manfred@colorfullife.com
In reply to: Tom Lane (#2)
Re: Libpq ssl fix

Hi,

I'll retest the patch. I didn't have a working ssl test setup, thus I
stopped when I ran into the same errors as without my patch. Probably
printfs in initialize_SSL(), but no tests that the code beyond
initialize_SSL() actually runs - sorry.

Btw, --enable-thread-safety on Linux (RedHat Fedora Core 1) fails in
configure with

configure: error:
*** Thread test program failed. Your platform is not thread-safe.
*** Check the file 'config.log'for the exact reason.

--
Manfred

Tom Lane wrote:

Show quoted text

Andreas Pflug <pgadmin@pse-consulting.de> writes:

init_ssl_system will return 0 on success and -1 on failure, which will
be interpreted just the other way round in initialize_SSL.
Patch appended.

Hmm, that looks backwards to me too, but this would seem to imply that
Manfred Spraul failed to test his last patch at all. Manfred, care to
explain why we shouldn't revert that patch in toto?

2004-03-23 22:44 momjian

* doc/src/sgml/libpq.sgml, src/backend/libpq/md5.c,
src/interfaces/libpq/fe-auth.c, src/interfaces/libpq/fe-connect.c,
src/interfaces/libpq/fe-secure.c, src/interfaces/libpq/libpq-fe.h,
src/interfaces/libpq/libpq-int.h: Add thread locking to SSL and
Kerberos connections.

I have removed the docs mentioning that SSL and Kerberos are not
thread-safe.

Manfred Spraul

regards, tom lane

#5Andreas Pflug
pgadmin@pse-consulting.de
In reply to: Manfred Spraul (#4)
Re: Libpq ssl fix

Manfred Spraul wrote:

Btw, --enable-thread-safety on Linux (RedHat Fedora Core 1) fails in
configure with

configure: error:
*** Thread test program failed. Your platform is not thread-safe.
*** Check the file 'config.log'for the exact reason.

I had this too, for two reasons:
- configure checks for libpthreads, while the libs are called libpthread
on my system.
- patch for thread_test.c needed posted some hours ago.

Regards,
Andreas

#6Bruce Momjian
bruce@momjian.us
In reply to: Andreas Pflug (#5)
Re: Libpq ssl fix

Andreas Pflug wrote:

Manfred Spraul wrote:

Btw, --enable-thread-safety on Linux (RedHat Fedora Core 1) fails in
configure with

configure: error:
*** Thread test program failed. Your platform is not thread-safe.
*** Check the file 'config.log'for the exact reason.

I had this too, for two reasons:
- configure checks for libpthreads, while the libs are called libpthread
on my system.

I need to see your config.log output. pgsql/config/acx_pthread.m4 has:

acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread
-pthreads -mthreads pthread --thread-safe -mt pthread-con
fig"

which should test for -lpthread. (Any option without a dash is assumed
to be a library name.)

- patch for thread_test.c needed posted some hours ago.

Applied.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#7Manfred Spraul
manfred@colorfullife.com
In reply to: Bruce Momjian (#6)
Re: Libpq ssl fix

Bruce Momjian wrote:

- patch for thread_test.c needed posted some hours ago.

Applied.

The current CVS tree work again, Andreas' patch fixed the configure failure.
Additionally Andreas' libpq patch fixes ssl. I've tested the locking,
too: ssl calls pq_lockingcallback.

I've tested it by adding ssl support into pgbench. Should I clean up the
change and post a patch?

--
Manfred

#8Bruce Momjian
bruce@momjian.us
In reply to: Manfred Spraul (#7)
Re: Libpq ssl fix

You will find Anreas's two patches in the patch queue. Are there more
changes than that?

---------------------------------------------------------------------------

Manfred Spraul wrote:

Bruce Momjian wrote:

- patch for thread_test.c needed posted some hours ago.

Applied.

The current CVS tree work again, Andreas' patch fixed the configure failure.
Additionally Andreas' libpq patch fixes ssl. I've tested the locking,
too: ssl calls pq_lockingcallback.

I've tested it by adding ssl support into pgbench. Should I clean up the
change and post a patch?

--
Manfred

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#9Bruce Momjian
bruce@momjian.us
In reply to: Andreas Pflug (#1)
Re: Libpq ssl fix

Patch applied. Thanks.

---------------------------------------------------------------------------

Andreas Pflug wrote:

init_ssl_system will return 0 on success and -1 on failure, which will
be interpreted just the other way round in initialize_SSL.
Patch appended.

Regards,
Andreas

Index: fe-secure.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-secure.c,v
retrieving revision 1.40
diff -u -r1.40 fe-secure.c
--- fe-secure.c	7 May 2004 00:24:59 -0000	1.40
+++ fe-secure.c	28 May 2004 14:00:40 -0000
@@ -922,7 +922,7 @@
char		fnbuf[2048];
#endif
-	if(!init_ssl_system(conn))
+	if(init_ssl_system(conn))
return -1;

#ifndef WIN32

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073