OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Problems with 2.2.10 on HP-UX 11.23/IA

From: Albert Chin (postfix-usersmlists.thewrittenword.com)
Date: Tue May 16 2006 - 08:26:53 CDT


Postfix faults with the following on HP-UX 11.23/IA (from mail.log):
  May 15 23:22:04 azuma postfix/master[29204]: warning: process
  /tmp/postfix/libexec/smtpd pid 29207 killed by signal 10

The fault occurs in src/smtpd/smtpd.c:
    switch (vstream_setjmp(state->client)) {

I built 2.2.10 as follows:
  $ gtar zxf postfix-2.2.10.tar.gz
  $ cd postfix-2.2.10
  $ gmake makefiles CC=cc DEBUG="-g" OPT="" \
  CCARGS="-DDEF_COMMAND_DIR=\\\"/tmp/postfix/sbin\\\" \
  -DDEF_CONFIG_DIR=\\\"/tmp/postfix/etc\\\" \
  -DDEF_DAEMON_DIR=\\\"/tmp/postfix/libexec\\\" \
  -DDEF_MAILQ_PATH=\\\"/tmp/postfix/bin/mailq\\\" \
  -DDEF_MANPAGE_DIR=\\\"/tmp/postfix/man\\\" \
  -DDEF_NEWALIAS_PATH=\\\"/tmp/postfix/bin/newaliases\\\" \
  -DDEF_SAMPLE_DIR=\\\"/tmp/postfix/contrib\\\" \
  -DDEF_SENDMAIL_PATH=\\\"/tmp/postfix/sbin/sendmail\\\" \
  -DDEF_QUEUE_DIR=\\\"/tmp/postfix/var\\\" \
  -DDEF_README_DIR=\\\"/tmp/postfix/doc\\\""
  $ gmake
  $ su
  # sh postfix-install -non-interactive
  [edit /tmp/postfix/etc/master.cf /tmp/postfix/etc/main.cf]
  $ /tmp/postfix/bin/newaliases
  $ /tmp/postfix/sbin/postfix start

On this platform,
    typedef __float80 jmp_buf[320/4];

If I change src/util/vstream.c from:
  case VSTREAM_CTL_EXCEPT:
      if (stream->jbuf == 0)
          stream->jbuf = (jmp_buf *) mymalloc(sizeof(jmp_buf));
      break;
to:
  case VSTREAM_CTL_EXCEPT:
      if (stream->jbuf == 0)
          stream->jbuf = (jmp_buf *) malloc(sizeof(jmp_buf));
                                     ^^^^^^
      break;
then I can connect to the SMTP port on this machine.

On HP-UX/IA, __ia64__ is not defined. Rather, __ia64 is defined. I
tried a build by modifying src/util/sys_defs.h from:
  #ifndef ALIGN_TYPE
  # ifdef __ia64__
  # define ALIGN_TYPE long double
  # else
  # define ALIGN_TYPE double
  # endif
  #endif
to:
  #ifndef ALIGN_TYPE
  # if defined(__ia64__) || defined(__ia64)
  # define ALIGN_TYPE long double
  # else
  # define ALIGN_TYPE double
  # endif
  #endif

However, the signal 10 error from postfix/master did not go away.

So, seems something in mymalloc() is causing the problem. Anyone have
ideas?

--
albert chin (chinathewrittenword.com)