Send OPENSSL_issetugid() straight to hell, no final cigarette.
authorderaadt <deraadt@openbsd.org>
Sat, 11 Apr 2015 16:16:15 +0000 (16:16 +0000)
committerderaadt <deraadt@openbsd.org>
Sat, 11 Apr 2015 16:16:15 +0000 (16:16 +0000)
commit15b3acebd605d32bf95c783da314b5c62960616c
treebf2bf6d2a153380294f40f22c68530df3b5135bf
parent920ccb623f2ff40701397bf8b898c6ebdf3a73a1
Send OPENSSL_issetugid() straight to hell, no final cigarette.

The issetugid() API is supposed to make a strong promise where "0
means it is safe to look at the environment".  Way back in the past
someone on the OpenSSL team responded to the environment access danger
by creating a wrapper called OPENSSL_issetugid, and went to use it a
number of places.  However, by default on systems lacking true
issetugid(), OPENSSL_issetugid returns 0.  0 indicating safely.  False
safety.  Which means OPENSSL_issetugid() fails to make any sort of
promise about safety, in fact it is just the opposite.

Can you believe the OpenSSL team?

This nastiness was noticed over the years, however noone could gain traction
and get it fixed in OpenSSL.  Also see a paragraph about this in
http://www.tedunangst.com/flak/post/worst-common-denominator-programming

ok jsing
lib/libcrypto/crypto.h
lib/libcrypto/crypto/Makefile
lib/libcrypto/crypto/shlib_version
lib/libcrypto/shlib_version
lib/libcrypto/uid.c [deleted file]
lib/libssl/src/crypto/crypto.h
lib/libssl/src/crypto/uid.c [deleted file]