]> diplodocus.org Git - nmh/blob - test/bad-input/test-header
Minimized message files reads in m_getfld() when the caller
[nmh] / test / bad-input / test-header
1 #!/bin/sh
2 ######################################################
3 #
4 # Test bogus headers (no blank line before body, etc.)
5 #
6 ######################################################
7
8 if test -z "${MH_OBJ_DIR}"; then
9 srcdir=`dirname "$0"`/../..
10 MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
11 fi
12
13 . "$MH_OBJ_DIR/test/common.sh"
14
15 setup_test
16
17 expected="$MH_TEST_DIR/$$.expected"
18 expected_err="$MH_TEST_DIR/$$.expected_err"
19 actual="$MH_TEST_DIR/$$.actual"
20 actual_err="$MH_TEST_DIR/$$.actual_err"
21
22 # Write message with bogus header field (missing blank line, really).
23 msgfile="$MH_TEST_DIR/Mail/inbox/11"
24 cat >"$msgfile" <<EOF
25 Date: Sun, 18 Dec 2005 00:52:39 +0100
26 From: foo@example.edu
27 To: bar@example.edu
28 Subject: test
29 This is a multi-part message in MIME format.
30
31 I am a stupid spammer.
32 EOF
33
34 # check scan
35 cat >"$expected" <<EOF
36 11 12/18 foo@example.edu test<<This is a multi-part message in MIME forma
37 EOF
38 scan -width 80 last > "$actual" 2>&1
39 check "$expected" "$actual"
40
41 # check show (mhl)
42 cat >"$expected" <<EOF
43 (Message inbox:11)
44
45 Date: Sun, 18 Dec 2005 00:52:39 +0100
46 To: bar@example.edu
47 From: foo@example.edu
48 Subject: test
49
50
51 This is a multi-part message in MIME format.
52
53 I am a stupid spammer.
54 EOF
55 show last > "$actual" 2>&1
56 check "$expected" "$actual"
57
58 # check mhshow
59 cat >"$expected" <<EOF
60 Date: Sun, 18 Dec 2005 00:52:39 +0100
61 To: bar@example.edu
62 From: foo@example.edu
63 Subject: test
64
65
66 part text/plain 70
67
68 This is a multi-part message in MIME format.
69
70 I am a stupid spammer.
71 EOF
72 mhshow -nopause last > "$actual" 2>&1
73 check "$expected" "$actual"
74
75 # check m_getfld() handling of empty header field
76 msgfile="$MH_TEST_DIR/Mail/inbox/12"
77 printf 'Date: Sat, 12 Jan 2013 09:07:01 -0600\nReceived:' >"$msgfile"
78 cat >"$expected" <<EOF
79 12 01/12
80 EOF
81 cat >"$expected_err" <<EOF
82 scan: eof encountered in field "Received"
83 ??Format error (message 12) in component 2
84 EOF
85
86 scan -width 13 last >"$actual" 2>"$actual_err"
87 check "$expected" "$actual"
88 check "$expected_err" "$actual_err"
89
90 # check m_getfld() handling of excessively long header field name
91 msgfile="$MH_TEST_DIR/Mail/inbox/13"
92 cat >"$msgfile" <<EOF
93 Date: Tue, 15 Jan 2013 21:13:12 -0600
94 ThisHeaderFieldNameIsWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayTooLong: OK
95 EOF
96 cat >"$expected" <<EOF
97 13 01/15
98 EOF
99 cat >"$expected_err" <<EOF
100 scan: field name "ThisHeaderFieldNameIsWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayTooLong" exceeds 997 bytes
101 ??Format error (message 13) in component 2
102 EOF
103
104 scan -width 13 last >"$actual" 2>"$actual_err"
105 check "$expected" "$actual"
106 check "$expected_err" "$actual_err"
107
108 # check m_getfld() handling of long header field name without a colon
109 msgfile="$MH_TEST_DIR/Mail/inbox/14"
110 cat >"$msgfile" <<EOF
111 Date: Thu, 17 Jan 2013 19:33:46 -0600
112 If a header field name has at least 512 characters without a newline or colon, it will raise a format error in m_getfld(). Here is a test of that. 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
113
114 Test
115
116
117 EOF
118 cat >"$expected" <<EOF
119 14 01/17
120 EOF
121 cat >"$expected_err" <<EOF
122 scan: eol encountered in field "If a header field name has at least 512 characters without a newline or colon, it will raise a format error in m_getfld(). Here is a test of that. 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901"
123 ??Format error (message 14) in component 2
124 EOF
125
126 scan -width 13 last >"$actual" 2>"$actual_err"
127 check "$expected" "$actual"
128 check "$expected_err" "$actual_err"
129
130
131 exit $failed