Commit 15ed15d3 authored by Ulf Möller's avatar Ulf Möller
Browse files

OPENSSL_issetugid() as in the main branch.

parent 54f7c857
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@

 Changes between 0.9.6 and 0.9.6a  [xx XXX 2001]

  *) Don't use getenv in library functions when run as setuid/setgid.
     New function OPENSSL_issetugid().
     [Ulf Moeller]

  *) Avoid false positives in memory leak detection code (crypto/mem_dbg.c)
     due to incorrect handling of multi-threading:

+2 −2
Original line number Diff line number Diff line
@@ -34,8 +34,8 @@ SDIRS= md2 md5 sha mdc2 hmac ripemd \
GENERAL=Makefile README crypto-lib.com install.com

LIB= $(TOP)/libcrypto.a
LIBSRC=	cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o
LIBSRC=	cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o

SRC= $(LIBSRC)

+2 −0
Original line number Diff line number Diff line
@@ -277,6 +277,8 @@ int CRYPTO_is_mem_check_on(void);
const char *SSLeay_version(int type);
unsigned long SSLeay(void);

int OPENSSL_issetugid(void);

int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long argl, void *argp,
	     CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
+14 −10
Original line number Diff line number Diff line
@@ -196,9 +196,10 @@ err:

const char *RAND_file_name(char *buf, int size)
	{
	char *s;
	char *s=NULL;
	char *ret=NULL;

	if (OPENSSL_issetugid() == 0)
		s=getenv("RANDFILE");
	if (s != NULL)
		{
@@ -208,10 +209,10 @@ const char *RAND_file_name(char *buf, int size)
		}
	else
		{
		if (OPENSSL_issetugid() == 0)
			s=getenv("HOME");
		if (s == NULL) return(RFILE);
		if (((int)(strlen(s)+strlen(RFILE)+2)) > size)
			return(RFILE);
		if (s != NULL && (strlen(s)+strlen(RFILE)+2 < size))
			{
			strcpy(buf,s);
#ifndef VMS
			strcat(buf,"/");
@@ -219,5 +220,8 @@ const char *RAND_file_name(char *buf, int size)
			strcat(buf,RFILE);
			ret=buf;
			}
		  else
		  	buf[0] = '\0'; /* no file name */
		}
	return(ret);
	}
+2 −2
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@
 *
 */

#include <openssl/crypto.h>
#include "openssl/crypto.h"

#if defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2)

@@ -64,7 +64,7 @@ int OPENSSL_issetugid(void)
	return issetugid();
	}

#elif defined(OPENSSL_SYS_WIN32)
#elif defined(WIN32)

int OPENSSL_issetugid(void)
	{