[11390] in bugtraq
Re: Internet Auditing Project
daemon@ATHENA.MIT.EDU (CyberPsychotic)
Tue Aug 17 16:49:10 1999
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Message-Id:  <Pine.LNX.4.05.9908170246270.1166-100000@gizmo.kyrnet.kg>
Date:         Tue, 17 Aug 1999 02:48:48 +0600
Reply-To: fygrave@tigerteam.net
From: CyberPsychotic <mlists@GIZMO.KYRNET.KG>
X-To:         Jerry Carlin <jmcarlin@WELL.COM>
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To:  <Pine.SOL.4.10.9908131314180.29031-100000@well.com>
~ Has anyone hacked to run on Solaris 2.6:
~
Here are the quick hacks I did to get it working on solaris. Your opinions
may differ though :-). (note some extra definitions I added to Makefile
-DSOLARIS and -DHAVE_STRSEP)
diff -u bass-1.0.7.orig/Makefile bass-1.0.7/Makefile
--- bass-1.0.7.orig/Makefile	Mon Aug  9 01:43:51 1999
+++ bass-1.0.7/Makefile	Wed Aug 18 04:25:43 1999
@@ -11,7 +11,8 @@
 BASS_DISTDIR = /usr/local/bass/
-BASS_DEFS = -DBASS_DEFAULT_DISTDIR=\"$(BASS_DISTDIR)\"
+BASS_DEFS = -DBASS_DEFAULT_DISTDIR=\"$(BASS_DISTDIR)\" -DSOLARIS -DHAVE_STRSEP
+BASS_LINK_LIBS = -lnsl -lsocket -lxnet
 # On Solaris you'll need to add *at least* these linker flags:
 # -lnsl -lsocket -lresolv -lrpc (is that how the rpc library is called?)
@@ -34,7 +35,7 @@
 all: BASS	
 BASS: $(BASS_OBJS)
-	$(CC) -o BASS $(BASS_OBJS)
+	$(CC) -o BASS $(BASS_OBJS) $(BASS_LINK_LIBS)
 $(LIBPCLOAK_OBJ):
 	cd $(LIBPCLOAK_DIR); $(MAKE) $(LIBPCLOAK).a
diff -u bass-1.0.7.orig/bind.h bass-1.0.7/bind.h
--- bass-1.0.7.orig/bind.h	Mon Aug  9 01:43:51 1999
+++ bass-1.0.7/bind.h	Wed Aug 18 03:51:51 1999
@@ -15,6 +15,13 @@
 #include <arpa/nameser.h>
+/*
+ * on solaris conficts with XTI definition of unspecified value
+ */
+#ifdef SOLARIS
+#undef T_UNSPEC
+#endif
+
 #define BINDPORT	53
 #define BIND_IMMUNE_VERSION_4	"9.7"
 #define BIND_IMMUNE_VERSION_8   "8.2"
Only in bass-1.0.7: er
diff -u bass-1.0.7.orig/icmp.h bass-1.0.7/icmp.h
--- bass-1.0.7.orig/icmp.h	Mon Aug  9 01:43:51 1999
+++ bass-1.0.7/icmp.h	Wed Aug 18 04:15:26 1999
@@ -13,8 +13,45 @@
 */
-#include <netinet/ip_icmp.h>
+#include <netinet/in_systm.h>
 #include <netinet/ip.h>
+#include <netinet/ip_icmp.h>
+
+#ifdef SOLARIS
+
+/* solaris has different struct for ip header defined (struct ip, with BSD-like
+ *structure members. This is just a quck hack to fix problem
+*/
+
+typedef u_char u_int8_t;
+typedef u_short u_int16_t;
+typedef u_long u_int32_t;
+
+struct iphdr
+  {
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+    u_int8_t ihl:4;
+    u_int8_t version:4;
+#elif __BYTE_ORDER == __BIG_ENDIAN
+    u_int8_t    version:4;
+    u_int8_t ihl:4;
+#else
+#error  "Please fix <bytesex.h>"
+#endif
+    u_int8_t tos;
+    u_int16_t tot_len;
+    u_int16_t id;
+    u_int16_t frag_off;
+    u_int8_t ttl;
+    u_int8_t protocol;
+    u_int16_t check;
+    u_int32_t saddr;
+    u_int32_t daddr;
+    /*The options start here. */
+  };
+
+
+#endif
 #define LOCAL_ICMP
 #ifndef LOCAL_ICMP
diff -u bass-1.0.7.orig/imapd.c bass-1.0.7/imapd.c
--- bass-1.0.7.orig/imapd.c	Mon Aug  9 01:43:51 1999
+++ bass-1.0.7/imapd.c	Wed Aug 18 04:31:08 1999
@@ -22,6 +22,56 @@
 #include "network.h"
 #include "log.h"
+
+/* strsep first appeared in 4.4BSD lite, thus some unices still don't have it.
+ * This ifdef should fix this incompatibility
+ */
+
+#ifdef HAVE_STRSEP
+/*
+ * Get next token from string *stringp, where tokens are possibly-empty
+ * strings separated by characters from delim.
+ *
+ * Writes NULs into the string at *stringp to end tokens.
+ * delim need not remain constant from call to call.
+ * On return, *stringp points past the last NUL written (if there might
+ * be further tokens), or is NULL (if there are definitely no more tokens).
+ *
+ * If *stringp is NULL, strsep returns NULL.
+ */
+char *
+strsep(stringp, delim)
+        register char **stringp;
+        register const char *delim;
+{
+        register char *s;
+        register const char *spanp;
+        register int c, sc;
+        char *tok;
+
+
+        if ((s = *stringp) == NULL)
+                return (NULL);
+        for (tok = s;;) {
+                c = *s++;
+                spanp = delim;
+                do {
+                        if ((sc = *spanp++) == c) {
+                                if (c == 0)
+                                        s = NULL;
+                                else
+                                        s[-1] = 0;
+                                *stringp = s;
+                                return (tok);
+                        }
+                } while (sc != 0);
+        }
+        /* NOTREACHED */
+}
+#endif
+
+
+
 /* imapd hook */
 int imapd_handlehost(struct sockaddr_in *addr, char *host, int timer)
 {
diff -u bass-1.0.7.orig/includes.h bass-1.0.7/includes.h
--- bass-1.0.7.orig/includes.h	Mon Aug  9 01:43:51 1999
+++ bass-1.0.7/includes.h	Wed Aug 18 03:56:28 1999
@@ -15,4 +15,10 @@
 #include <sys/types.h>
 #include <netinet/in.h>
+/*
+ * Solaris misses TIOCNOTTY defined here.. others?
+ */
+#ifdef SOLARIS
+#include <sys/termios.h>
+#endif
 #endif
--
fygrave@tigerteam.net		http://www.kalug.lug.net