openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include file

Started by Peter Galbavyabout 23 years ago5 messages
#1Peter Galbavy
peter.galbavy@knowtion.net

[To BOTH postgresql and openbsd ports lists... please reply as appropriate.]

I finally got around to trying to build 7.3beta3 on an fresh OpenBSD
3.2/i386 box, without all the historical lint that gets collected up.
OpenSSL 0.9.x is including in the base release.

The includsion of <openssl/e_os.h> in src/backend/libpq/be-secure.c fails.
Removing this include results in a compile, but a missing reference to
'get_last_socket_error()' in linking. I cannot find that in any openssl
include file :(

I know *nothing* about using the OpenSSL libraries, and I am off away from
the 'net for a week from tonight. :( Sorry.

I will include any patches in the OpenBSD postgresql port that I am working
on, but this may affect other systems that (perhaps) use the newer OpenSSL
libraries ?

Any ideas ?
--
Peter

#2Peter Galbavy
peter.galbavy@knowtion.net
In reply to: Peter Galbavy (#1)
Re: openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include file

According to the feedback I have had, e_os.h is no longer a public interface
header file in OpenSSL. 'get_last_socket_error' is a macro that seems to
expand to errno.

Can I suggest someone with better understanding of the postgresql sources,
and ssl support, please pick this up - maybe in time for the 7.3 release ?

rgds,
--
Peter

----- Original Message -----
From: "Peter Galbavy" <peter.galbavy@knowtion.net>
To: <pgsql-ports@postgresql.org>; <ports@openbsd.org>
Sent: Tuesday, November 05, 2002 8:13 AM
Subject: openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include file

[To BOTH postgresql and openbsd ports lists... please reply as

appropriate.]

I finally got around to trying to build 7.3beta3 on an fresh OpenBSD
3.2/i386 box, without all the historical lint that gets collected up.
OpenSSL 0.9.x is including in the base release.

The includsion of <openssl/e_os.h> in src/backend/libpq/be-secure.c fails.
Removing this include results in a compile, but a missing reference to
'get_last_socket_error()' in linking. I cannot find that in any openssl
include file :(

I know *nothing* about using the OpenSSL libraries, and I am off away from
the 'net for a week from tonight. :( Sorry.

I will include any patches in the OpenBSD postgresql port that I am

working

Show quoted text

on, but this may affect other systems that (perhaps) use the newer OpenSSL
libraries ?

Any ideas ?
--
Peter

#3Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Peter Galbavy (#2)
Re: openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include

Peter Galbavy wrote:

According to the feedback I have had, e_os.h is no longer a public interface
header file in OpenSSL. 'get_last_socket_error' is a macro that seems to
expand to errno.

Can I suggest someone with better understanding of the postgresql sources,
and ssl support, please pick this up - maybe in time for the 7.3 release ?

OK, I am using:

#$ openssl
OpenSSL> version
OpenSSL 0.9.6e 30 Jul 2002

and ssl compiles fine here. What version are you using, exactly.

Maybe OpenBSD considered e_os.h to be a security risk. ;-)

I don't think this will make 7.3 unless we can find more information. I
am hesitant to make any changes that may break openssl on other
platforms. If we can find a solution, it may be in 7.3.1.

-- 
  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
#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#3)
Re: [HACKERS] openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include

Bruce Momjian <pgman@candle.pha.pa.us> writes:

Peter Galbavy wrote:

According to the feedback I have had, e_os.h is no longer a public interface
header file in OpenSSL. 'get_last_socket_error' is a macro that seems to
expand to errno.

OK, I am using:
#$ openssl
OpenSSL> version
OpenSSL 0.9.6e 30 Jul 2002

and ssl compiles fine here. What version are you using, exactly.

I have OpenSSL 0.9.6g here (which is still the current release according
to www.openssl.org). openssl/e_os.h is certainly still there ... but it
does contain the comment

/* <openssl/e_os2.h> contains what we can justify to make visible
* to the outside; this file e_os.h is not part of the exported
* interface. */

which may have prompted the OpenBSD porter to not include it?

Anyway, get_last_socket_error() seems exactly equivalent to our macro
SOCK_ERRNO in libpq/libpq-int.h. AFAICT, the uses of it in our
code are these:

/home/postgres/pgsql/src/backend/libpq/be-secure.c:
errno = get_last_socket_error();
/home/postgres/pgsql/src/backend/libpq/be-secure.c:
errno = get_last_socket_error();
/home/postgres/pgsql/src/interfaces/libpq/fe-secure.c:
SOCK_ERRNO = get_last_socket_error();
/home/postgres/pgsql/src/interfaces/libpq/fe-secure.c:
SOCK_ERRNO = get_last_socket_error();

and I think every one of these is bogus and should be removed.
At best they're no-ops.

If that is the only use of e_os.h stuff then we can stop including
the file ...

regards, tom lane

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#4)
Re: [HACKERS] openbsd 3.2, postgresql 7.3beta3 and openssl 'e_os.h' include

I said:

Anyway, get_last_socket_error() seems exactly equivalent to our macro
SOCK_ERRNO in libpq/libpq-int.h. AFAICT, the uses of it in our
code are these:

/home/postgres/pgsql/src/backend/libpq/be-secure.c:
errno = get_last_socket_error();
/home/postgres/pgsql/src/backend/libpq/be-secure.c:
errno = get_last_socket_error();
/home/postgres/pgsql/src/interfaces/libpq/fe-secure.c:
SOCK_ERRNO = get_last_socket_error();
/home/postgres/pgsql/src/interfaces/libpq/fe-secure.c:
SOCK_ERRNO = get_last_socket_error();

and I think every one of these is bogus and should be removed.
At best they're no-ops.

If that is the only use of e_os.h stuff then we can stop including
the file ...

These were indeed the only uses of e_os.h symbols. I have removed them
and the #includes.

regards, tom lane