opie/opie.patch

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

     1 Index: Makefile.in
     2 --- Makefile.in.orig	2005-11-07 19:38:27 +0100
     3 +++ Makefile.in	2005-11-07 19:38:52 +0100
     4 @@ -152,7 +152,7 @@
     5  	@-for i in otp-md4 otp-md5; do ln -s opiekey.1 $(LOCALMAN)/man1/$$i.1; done
     6  	@if test ! -d $(LOCALMAN)/man1; then $(MKDIR) $(LOCALMAN)/man1; chmod 755 $(LOCALMAN)/man1; fi; cp opiekey.1 $(LOCALMAN)/man1/opiekey.1; $(CHOWN) $(OWNER) $(LOCALMAN)/man1/opiekey.1; chgrp $(GROUP) $(LOCALMAN)/man1/opiekey.1; chmod 644 $(LOCALMAN)/man1/opiekey.1
     8 -server:	libopie/libopie.a libmissing/libmissing.a opietest-passed opielogin opiesu opiepasswd opieinfo opieftpd opieserv
     9 +server:	libopie/libopie.a libmissing/libmissing.a opietest-passed opielogin opiesu opiepasswd opieinfo opieserv
    11  server-install: server
    12  	@echo "Installing OPIE server software..."
    13 Index: libopie/atob8.c
    14 --- libopie/atob8.c.orig	1999-03-11 03:09:57 +0100
    15 +++ libopie/atob8.c	2005-11-07 19:39:30 +0100
    16 @@ -72,5 +72,5 @@
    17      *out++ |= val;
    18    }
    20 -  return out;
    21 +  return (char *)out;
    22  }
    23 Index: opie_cfg.h
    24 --- opie_cfg.h.orig	2001-11-20 17:23:37 +0100
    25 +++ opie_cfg.h	2005-11-07 19:39:05 +0100
    26 @@ -69,6 +69,9 @@
    27  #define DOUTMPX 0
    28  #endif /* HAVE_GETUTXLINE && HAVE_UTMPX_H */
    30 +#include <stdlib.h>
    31 +#include <stdio.h>
    32 +#include <string.h>
    33  #include <sys/types.h>
    34  /* Adapted from the Autoconf hypertext info pages */
    35  #if HAVE_DIRENT_H
    36 Index: libopie/generator.c
    37 --- libopie/generator.c.orig	2006-06-18 02:06:28.215630000 +0200
    38 +++ libopie/generator.c	2006-06-18 02:06:15.049431000 +0200
    39 @@ -62,7 +62,7 @@
    40  static int opieauto_connect FUNCTION_NOARGS
    41  {
    42    int s;
    43 -  struct sockaddr_un sun;
    44 +  struct sockaddr_un locsun;
    45    char buffer[1024];
    46    char *c, *c2 ="/.opieauto";
    47    uid_t myuid = getuid(), myeuid = geteuid();
    48 @@ -74,8 +74,8 @@
    49      return -1;
    50    };
    52 -  memset(&sun, 0, sizeof(struct sockaddr_un));
    53 -  sun.sun_family = AF_UNIX;
    54 +  memset(&locsun, 0, sizeof(struct sockaddr_un));
    55 +  locsun.sun_family = AF_UNIX;
    57    if (!(c = getenv("HOME"))) {
    58  #if DEBUG
    59 @@ -84,15 +84,15 @@
    60      return -1;
    61    };
    63 -  if (strlen(c) > (sizeof(sun.sun_path) - strlen(c2) - 1)) {
    64 +  if (strlen(c) > (sizeof(locsun.sun_path) - strlen(c2) - 1)) {
    65  #if DEBUG
    66      syslog(LOG_DEBUG, "opieauto_connect: HOME is too long: %s", c);
    67  #endif /* DEBUG */
    68      return -1;
    69    };
    71 -  strcpy(sun.sun_path, c);
    72 -  strcat(sun.sun_path, c2);
    73 +  strcpy(locsun.sun_path, c);
    74 +  strcat(locsun.sun_path, c2);
    76    if ((s = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
    77  #if DEBUG
    78 @@ -104,14 +104,14 @@
    79    {
    80      struct stat st;
    82 -    if (stat(sun.sun_path, &st) < 0) {
    83 +    if (stat(locsun.sun_path, &st) < 0) {
    84  #if DEBUG
    85        syslog(LOG_DEBUG, "opieauto_connect: stat: %s(%d)\n", strerror(errno), errno);
    86  #endif /* DEBUG */
    87        goto ret;
    88      };
    90 -    if (connect(s, (struct sockaddr *)&sun, sizeof(struct sockaddr_un))) {
    91 +    if (connect(s, (struct sockaddr *)&locsun, sizeof(struct sockaddr_un))) {
    92  #if DEBUG
    93        syslog(LOG_DEBUG, "opieauto_connect: connect: %s(%d)\n", strerror(errno), errno);
    94  #endif /* DEBUG */
    95 Index: opieauto.c
    96 --- opieauto.c.orig	2001-11-20 16:18:42.000000000 +0100
    97 +++ opieauto.c	2006-06-18 02:28:20.526432000 +0200
    98 @@ -282,10 +282,10 @@
    99      baile("atexit");
   101    {
   102 -    struct sockaddr_un sun;
   103 +    struct sockaddr_un locsun;
   105 -    memset(&sun, 0, sizeof(struct sockaddr_un));
   106 -    sun.sun_family = AF_UNIX;
   107 +    memset(&locsun, 0, sizeof(struct sockaddr_un));
   108 +    locsun.sun_family = AF_UNIX;
   110      {
   111      char *c;
   112 @@ -294,12 +294,12 @@
   113      if (!(c = getenv("HOME")))
   114        bail("getenv(HOME) failed -- no HOME variable?");
   116 -    if (strlen(c) > (sizeof(sun.sun_path) - strlen(c2) - 1))
   117 +    if (strlen(c) > (sizeof(locsun.sun_path) - strlen(c2) - 1))
   118        bail("your HOME is too long");
   120 -    strcpy(sun.sun_path, c);
   121 -    strcat(sun.sun_path, c2);
   122 -    sockpath = strdup(sun.sun_path);
   123 +    strcpy(locsun.sun_path, c);
   124 +    strcat(locsun.sun_path, c2);
   125 +    sockpath = strdup(locsun.sun_path);
   126      };
   128      if ((parents = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
   129 @@ -311,7 +311,7 @@
   130      if (umask(0177) < 0)
   131        baile("umask");
   133 -    if (bind(parents, (struct sockaddr *)&sun, sizeof(struct sockaddr_un)))
   134 +    if (bind(parents, (struct sockaddr *)&locsun, sizeof(struct sockaddr_un)))
   135        baile("bind");
   137      if (stat(sockpath, &st) < 0)

mercurial