projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Patch from Harvey Eneman: fixes problem on some systems where a free()
[mmh]
/
uip
/
mhshowsbr.c
diff --git
a/uip/mhshowsbr.c
b/uip/mhshowsbr.c
index
d3397ae
..
c60acb9
100644
(file)
--- a/
uip/mhshowsbr.c
+++ b/
uip/mhshowsbr.c
@@
-12,23
+12,14
@@
#include <h/signals.h>
#include <h/md5.h>
#include <errno.h>
#include <h/signals.h>
#include <h/md5.h>
#include <errno.h>
-#include <setjmp.h>
+#include <h/m_setjmp.h>
#include <signal.h>
#include <h/mts.h>
#include <h/tws.h>
#include <h/mime.h>
#include <h/mhparse.h>
#include <h/utils.h>
#include <signal.h>
#include <h/mts.h>
#include <h/tws.h>
#include <h/mime.h>
#include <h/mhparse.h>
#include <h/utils.h>
-
-/*
- * Just use sigjmp/longjmp on older machines that
- * don't have sigsetjmp/siglongjmp.
- */
-#ifndef HAVE_SIGSETJMP
-# define sigjmp_buf jmp_buf
-# define sigsetjmp(env,mask) setjmp(env)
-# define siglongjmp(env,val) longjmp(env,val)
-#endif
+#include <sys/wait.h>
extern int debugsw;
extern int debugsw;
@@
-84,7
+75,7
@@
static int show_multi_aux (CT, int, int, char *);
static int show_message_rfc822 (CT, int, int);
static int show_partial (CT, int, int);
static int show_external (CT, int, int);
static int show_message_rfc822 (CT, int, int);
static int show_partial (CT, int, int);
static int show_external (CT, int, int);
-static RETSIGTYPE intrser (int);
+static void intrser (int);
/*
/*
@@
-159,7
+150,7
@@
show_single_message (CT ct, char *form)
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
- SIGPROCMASK (SIG_BLOCK, &set, &oset);
+ sigprocmask (SIG_BLOCK, &set, &oset);
while (wait (&status) != NOTOK) {
pidcheck (status);
while (wait (&status) != NOTOK) {
pidcheck (status);
@@
-167,7
+158,7
@@
show_single_message (CT ct, char *form)
}
/* reset the signal mask */
}
/* reset the signal mask */
- SIGPROCMASK (SIG_SETMASK, &oset, &set);
+ sigprocmask (SIG_SETMASK, &oset, &set);
xpid = 0;
flush_errors ();
xpid = 0;
flush_errors ();
@@
-478,7
+469,8
@@
raw:
}
}
}
}
- if (buflen <= 0 || (ct->c_termproc && buflen <= strlen(ct->c_termproc))) {
+ if (buflen <= 0 ||
+ (ct->c_termproc && (size_t) buflen <= strlen(ct->c_termproc))) {
/* content_error would provide a more useful error message
* here, except that if we got overrun, it probably would
* too.
/* content_error would provide a more useful error message
* here, except that if we got overrun, it probably would
* too.
@@
-549,7
+541,7
@@
show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
SIGNAL_HANDLER istat;
istat = SIGNAL (SIGINT, intrser);
SIGNAL_HANDLER istat;
istat = SIGNAL (SIGINT, intrser);
- if ((intr = sigsetjmp (intrenv, 1)) == OK) {
+ if ((intr = m_sigsetjmp (intrenv, 1)) == OK) {
fflush (stdout);
prompt[0] = 0;
read (fileno (stdout), prompt, sizeof(prompt));
fflush (stdout);
prompt[0] = 0;
read (fileno (stdout), prompt, sizeof(prompt));
@@
-572,7
+564,7
@@
show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
fflush (stdout);
fflush (stdout);
- for (i = 0; (child_id = vfork ()) == NOTOK && i < 5; i++)
+ for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
sleep (5);
switch (child_id) {
case NOTOK:
sleep (5);
switch (child_id) {
case NOTOK:
@@
-719,7
+711,7
@@
show_multi_internal (CT ct, int serial, int alternate)
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
- SIGPROCMASK (SIG_BLOCK, &set, &oset);
+ sigprocmask (SIG_BLOCK, &set, &oset);
}
/*
}
/*
@@
-805,7
+797,7
@@
show_multi_internal (CT ct, int serial, int alternate)
out:
if (!nowserial) {
/* reset the signal mask */
out:
if (!nowserial) {
/* reset the signal mask */
- SIGPROCMASK (SIG_SETMASK, &oset, &set);
+ sigprocmask (SIG_SETMASK, &oset, &set);
}
return result;
}
return result;
@@
-993,7
+985,8
@@
raw:
}
}
}
}
- if (buflen <= 0 || (ct->c_termproc && buflen <= strlen(ct->c_termproc))) {
+ if (buflen <= 0 ||
+ (ct->c_termproc && (size_t) buflen <= strlen(ct->c_termproc))) {
/* content_error would provide a more useful error message
* here, except that if we got overrun, it probably would
* too.
/* content_error would provide a more useful error message
* here, except that if we got overrun, it probably would
* too.
@@
-1060,6
+1053,9
@@
show_message_rfc822 (CT ct, int serial, int alternate)
static int
show_partial (CT ct, int serial, int alternate)
{
static int
show_partial (CT ct, int serial, int alternate)
{
+ NMH_UNUSED (serial);
+ NMH_UNUSED (alternate);
+
content_error (NULL, ct,
"in order to display this message, you must reassemble it");
return NOTOK;
content_error (NULL, ct,
"in order to display this message, you must reassemble it");
return NOTOK;
@@
-1090,12
+1086,10
@@
show_external (CT ct, int serial, int alternate)
}
}
-static RETSIGTYPE
+static void
intrser (int i)
{
intrser (int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL (SIGINT, intrser);
-#endif
+ NMH_UNUSED (i);
putchar ('\n');
siglongjmp (intrenv, DONE);
putchar ('\n');
siglongjmp (intrenv, DONE);