perdition-1.19-rc4 segv's

Doug Shearer <[email protected]> Mon, 9 May 2011 14:05:19 -0400
Newsgroups gmane.mail.perdition.user
Message-ID <[email protected]>
I am trying to adapt perdition-1.19-rc4 for use on Solaris 10, and have used what 
may be some obscure options - these cause segv's.  Simon Horman asked me to post
the patches I made to this list.  These patches work for me, but it would be good
if someone more familiar with the code would have a look at them to see that they
are done properly.

My impression is that there is not much interest in using perdition on Solaris -
if you are interested in my experiences please contact me directly.

Cheers,
Doug Shearer

####################
perdition/options.c
segv when opt.ssl_passphrase_file is not specified and we are logging options
####################
diff -u perdition-1.19-rc4/perdition/options.c.orig perdition-1.19-rc4/perdition/options.c     
--- perdition-1.19-rc4/perdition/options.c.orig	Thu Mar 17 10:42:51 2011
+++ perdition-1.19-rc4/perdition/options.c	Thu Mar 17 10:41:17 2011
@@ -1417,7 +1417,7 @@
		 BIN_OPT_STR(opt.ssl_no_client_cert_verify),
		 BIN_OPT_STR(opt.ssl_no_cn_verify),
		 opt.ssl_passphrase_fd,
-		 opt.ssl_passphrase_file,
+		 OPT_STR(opt.ssl_passphrase_file),
		 opt.ssl_mask);
	out[MAX_LINE_LENGTH - 1] = '\0';



####################################
perdition/db/ldap/perditiondb_ldap.c
segv when -p OUTGOING_PORT is specified on the command line (not in the .conf file) and attrcount = 2 (so 
returns[2] and therefore *port_str becomes undefined)
NOTE: I put in a check when attrcount = 1 also - I have no idea whether this can actually happen
####################################
diff -u ./perdition-1.19-rc4/perdition/db/ldap/perditiondb_ldap.c.orig ./perdition-1.19-rc4/perdition/db/ldap/perditiondb_ldap.c
--- ./perdition-1.19-rc4/perdition/db/ldap/perditiondb_ldap.c.orig	Thu Sep  9 08:31:02 2010
+++ ./perdition-1.19-rc4/perdition/db/ldap/perditiondb_ldap.c	Tue May  3 11:43:44 2011
@@ -606,9 +606,9 @@
	else {
		if (returns[0])
			*user_str = returns[0];
-		if (returns[1])
+		if (attrcount > 1 && returns[1])
			*server_str = returns[1];
-		if (returns[2])
+		if (attrcount > 2 && returns[2])
			*port_str = returns[2];
	}


______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users