-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathplus36.html
1520 lines (1511 loc) · 160 KB
/
plus36.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html lang=en id=plus>
<meta charset=utf-8>
<title>OpenBSD 3.6 Changelog</title>
<meta name="description" content="OpenBSD 3.6 changes">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/plus36.html">
<style>
a[href="stable.html"] {
color: var(--green);
}
strong {
color: var(--red);
}
h3 {
color: var(--blue);
}
p strong {
font-weight: normal;
}
</style>
<h2 id=OpenBSD>
<a href="index.html">
<i>Open</i><b>BSD</b></a>
3.6 Changelog
</h2>
<hr>
<p>
This is a partial list of the major machine-independent changes
(i.e., these are the changes people ask about most often). Machine
specific changes have also been made, and are sometimes mentioned
in the pages for the specific <a href="plat.html">platforms</a>.
<p>
Note: <strong>Problems for which patches exist are marked in red</strong>.
<p>
For changes in other releases, click below:<br>
<a href="plus20.html">2.0</a>,
<a href="plus21.html">2.1</a>,
<a href="plus22.html">2.2</a>,
<a href="plus23.html">2.3</a>,
<a href="plus24.html">2.4</a>,
<a href="plus25.html">2.5</a>,
<a href="plus26.html">2.6</a>,
<a href="plus27.html">2.7</a>,
<a href="plus28.html">2.8</a>,
<a href="plus29.html">2.9</a>,
<a href="plus30.html">3.0</a>,
<a href="plus31.html">3.1</a>,
<a href="plus32.html">3.2</a>,
<a href="plus33.html">3.3</a>,
<a href="plus34.html">3.4</a>,
<a href="plus35.html">3.5</a>,
<a href="plus37.html">3.7</a>,
<br>
<a href="plus38.html">3.8</a>,
<a href="plus39.html">3.9</a>,
<a href="plus40.html">4.0</a>,
<a href="plus41.html">4.1</a>,
<a href="plus42.html">4.2</a>,
<a href="plus43.html">4.3</a>,
<a href="plus44.html">4.4</a>,
<a href="plus45.html">4.5</a>,
<a href="plus46.html">4.6</a>,
<a href="plus47.html">4.7</a>,
<a href="plus48.html">4.8</a>,
<a href="plus49.html">4.9</a>,
<a href="plus50.html">5.0</a>,
<a href="plus51.html">5.1</a>,
<a href="plus52.html">5.2</a>,
<a href="plus53.html">5.3</a>,
<a href="plus54.html">5.4</a>,
<br>
<a href="plus55.html">5.5</a>,
<a href="plus56.html">5.6</a>,
<a href="plus57.html">5.7</a>,
<a href="plus58.html">5.8</a>,
<a href="plus59.html">5.9</a>,
<a href="plus60.html">6.0</a>,
<a href="plus61.html">6.1</a>,
<a href="plus62.html">6.2</a>,
<a href="plus63.html">6.3</a>,
<a href="plus64.html">6.4</a>,
<a href="plus65.html">6.5</a>,
<a href="plus66.html">6.6</a>,
<a href="plus67.html">6.7</a>,
<a href="plus68.html">6.8</a>,
<a href="plus69.html">6.9</a>,
<a href="plus70.html">7.0</a>,
<a href="plus71.html">7.1</a>,
<br>
<a href="plus72.html">7.2</a>,
<a href="plus73.html">7.3</a>,
<a href="plus74.html">7.4</a>,
<a href="plus75.html">7.5</a>,
<a href="plus76.html">7.6</a>,
<a href="plus77.html">7.7</a>,
<a href="plus.html">current</a>.
<br>
<p>
<h3>Changes made between OpenBSD 3.5 and 3.6</h3>
<p>
<ul>
<li>Fix <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>'s <a href="https://man.openbsd.org/bpf.4">bpf(4)</a> attachment on <a href="https://man.openbsd.org/atw.4">atw(4)</a> devices.
<!-- ^ 20040912 -->
<li><strong>SECURITY FIX: Eilko Bos reported that radius authentication, as implemented by login_radius(8), was not checking the shared secret used for replies sent by the radius server.</strong> This could allow an attacker to spoof a reply granting access to the attacker. Note that OpenBSD does not ship with radius authentication enabled.<br>
<a href="errata36.html#radius">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<!-- ^ 20040911 -->
<li>Bail out of <a href="https://man.openbsd.org/newfs.8">newfs(8)</a> on errors when making very small filesystems.
<!-- ^ 20040910 -->
<li>Move MIPS to 64-bit.
<li>Fix <a href="https://man.openbsd.org/copyout.9">copyout(9)</a> of <a href="https://man.openbsd.org/pf.4">pf(4)</a> anchors with relative paths and wildcards.
<li>Track the peer count correctly in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> and <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, fixing memory corruption in both.
<li>Fix a null dereference in <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>.
<li>Just print the raw IP protocol number in <a href="https://man.openbsd.org/netstat.1">netstat(1)</a> instead of fetching the protocol name.
<!-- ^ 20040909 -->
<li>Stop <a href="https://man.openbsd.org/routed.8">routed(8)</a> fiddling with routes controlled by <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li><strong>SECURITY FIX: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>'s mod_rewrite module can be made to write one zero byte in an arbitrary memory position outside of a char array,</strong> causing a DoS or possibly buffer overflows. This would require enabling dbm for mod_rewrite and making use of a malicious dbm file.<br>
<a href="errata36.html#httpd2">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Stop <a href="https://man.openbsd.org/telnetd.8">telnetd(8)</a> closing the slave fd from <a href="https://man.openbsd.org/openpty.3">openpty(3)</a> and then reopening it.
<!-- ^ 20040908 -->
<li>Set a cleanup handler for HUP as well as INT, TERM and WINCH on the <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> multiplex control socket.
<li>Stop <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> dying on <a href="https://man.openbsd.org/sendmsg.2">sendmsg(2)</a> failures.
<li>Unbreak <a href="https://man.openbsd.org/route.8">route(8)</a>'s -netmask option.
<li>Fix a bad cast from mode_t to short in <a href="https://man.openbsd.org/ar.1">ar(1)</a>.
<!-- ^ 20040907 -->
<li>Check for interrupted waits in <a href="https://man.openbsd.org/inetd.8">inetd(8)</a>, fixing late reaping of zombie processes and other ignored signals.
<!-- ^ 20040906 -->
<!-- ^ 20040905 -->
<!-- ^ 20040904 -->
<li>Don't busy-wait on ENOBUFS in <a href="https://man.openbsd.org/pppoe.8">pppoe(8)</a>.
<!-- ^ 20040903 -->
<li>Stop the mixer resetting <a href="https://man.openbsd.org/emu.4">emu(4)</a>'s volume to very very loud.
<!-- ^ 20040902 -->
<li>Make sure kernfs_xread() isn't called with a negative offset.
<li><strong>SECURITY FIX: Chris Evans reported several flaws (stack and integer overflows) in the Xpm library code that parses image files (CAN-2004-0687, CAN-2004-0688).</strong> Some of these would be exploitable when parsing malicious image files in an application that handles XPM images, if they could escape ProPolice.<br>
<a href="errata36.html#xpm">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<!-- ^ 20040901 -->
<li>Stop non-MASTER <a href="https://man.openbsd.org/carp.4">carp(4)</a> hosts replying to ARP requests, as this upsets some layer 3 switches.
<!-- ^ 20040831 -->
<li>Stop <a href="https://man.openbsd.org/login.1">login(1)</a> treating the 'bar' in username foo.bar as a Kerberos instance, that's a krb4 syntax we no longer use.
<li>Fix fd passing problems with S/Key on sparc*.
<li>Don't do DNS lookups when reading <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>'s config, save them for later.
<li>In <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, don't log transient network errors from <a href="https://man.openbsd.org/sendto.2">sendto(2)</a>.
<li>Fix <a href="https://man.openbsd.org/pfsync.4">pfsync(4)</a>'s handling of adaptive timeouts.
<li>Enforce minimum lease time of 60 seconds in <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>, to stop bogus 0s leases from the server causing the client to spin.
<li>Fix oversized copies that were causing memory faults in <a href="https://man.openbsd.org/usb.4">usb(4)</a>.
<!-- ^ 20040830 -->
<!-- ^ 20040829 -->
<li>Don't close stdin in <a href="https://man.openbsd.org/sshd.8">sshd(8)</a> unless we're reexec'ing.
<!-- ^ 20040828 -->
<li>Make sure <a href="https://man.openbsd.org/pkg_create.1">pkg_create(1)</a> keeps track of the current working directory.
<!-- ^ 20040827 -->
<li><strong>RELIABILITY FIX: Due to incorrect error handling in zlib an attacker could potentially cause a denial of service attack (CAN-2004-0797).</strong><br>
<a href="errata36.html#libz">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<!-- ^ 20040826 -->
<li>Have /etc/<a href="https://man.openbsd.org/security.8">security(8)</a> store a copy of the disklabel and report any changes.
<!-- ^ 20040825 -->
<li>Only allow SIOCGET{VIF,SG}CNT from the multicast router socket (PR#3825).
<li>Document the fact that collisions have been found for MD4, MD5 and ripemd.
<li>Don't make <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> explode when <a href="https://man.openbsd.org/getaddrinfo.3">getaddrinfo(3)</a> returns EAI_NONAME.
<li>Base the value of uvm_km_pages_lowat on the amount of physical memory.
<li>Back out the IPv6 prefix len 'fix', the old code was right.
<!-- ^ 20040824 -->
<li>Make <a href="https://man.openbsd.org/xargs.1">xargs(1)</a>' behaviour match the manpage when the utility can't be executed.
<li>Fix <a href="https://man.openbsd.org/fgetln.3">fgetln(3)</a> and <a href="https://man.openbsd.org/realloc.3">realloc(3)</a> handling in libedit.
<li>Do the '%s' replacement for <a href="https://man.openbsd.org/less.1">less(1)</a>'s LESSOPEN and LESSCLOSE environment variables ourselves instead of using <a href="https://man.openbsd.org/snprintf.3">snprintf(3)</a>.
<li>Don't send a SIGINT or SIGTERM to the entire process group when received by the shell unless the shell is the process group leader (PR#3820).
<li>In <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>, fix the test for whether a newly-created SA replaces an old one.
<li>Enable Dead Peer Detection in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> by default.
<li>Don't overwrite the raw IPv6 checksum field in a shared mbuf.
<!-- ^ 20040823 -->
<li>Fix high interrupt load in <a href="https://man.openbsd.org/ste.4">ste(4)</a>.
<!-- ^ 20040822 -->
<li>Remove the need for <a href="https://man.openbsd.org/isakmpd.policy.5">isakmpd.policy(5)</a> file when starting <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> from <a href="https://man.openbsd.org/rc.8">rc(8)</a>.
<li>Fix the IPv6 prefix length sanity checks in in6_are_prefix_equal().
<!-- ^ 20040821 -->
<li>3.6-beta -> 3.6.
<li>Add a new control message to <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> that allows a session to be downed and restarted, accessible with the <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a> command 'clear'.
<li>Unbreak parsing of multiple -o options to <a href="https://man.openbsd.org/mount_nfs.8">mount_nfs(8)</a>.
<!-- ^ 20040820 -->
<li>Stop <a href="https://man.openbsd.org/bge.4">bge(4)</a>, <a href="https://man.openbsd.org/sk.4">sk(4)</a> and <a href="https://man.openbsd.org/ti.4">ti(4)</a> complaining about a lack of jumbo frame buffers for inbound frames, unless debugging is on.
<li>On nexthop reachability status changes always notify the <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> RDE, not just when the nexthop was previously unavailable.
<!-- ^ 20040819 -->
<li>Don't send bad IP packets via <a href="https://man.openbsd.org/bpf.4">bpf(4)</a> when monitoring a <a href="https://man.openbsd.org/gre.4">gre(4)</a> interface (PR#3852).
<!-- ^ 20040818 -->
<li>Fix descriptor passing in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Stop networks disappearing on <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> reload by always updating the prefix timestamp.
<li>Remove a null deref in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Implement the SMTP 'QUIT' command in <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>.
<li>Fix an out-of-bounds read in <a href="https://man.openbsd.org/makeinfo.1">makeinfo(1)</a>.
<!-- ^ 20040817 -->
<li>Remove ip6.int from the <a href="https://man.openbsd.org/named.8">named(8)</a> example config files.
<li>Bump OpenSSH to version 3.9.
<li>Put in a temporary fix for <a href="https://man.openbsd.org/wi.4">wi(4)</a> cards with station firmware < 1.8. Real fix after the 3.6 release.
<!-- ^ 20040816 -->
<li>Remove <a href="https://man.openbsd.org/spamd.8">spamd(8)</a> greylist entries the second they expire.
<li>Back out the recent <a href="https://man.openbsd.org/pf.4">pf(4)</a>-skips-downed-interfaces change, it breaks IPv6.
<!-- ^ 20040815 -->
<li>Add an example <a href="https://man.openbsd.org/sendmail.8">sendmail(8)</a> /etc/mail/genericstable.
<li>When <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>'s -K switch is active, check the peer's proposal against <a href="https://man.openbsd.org/isakmpd.conf.5">isakmpd.conf(5)</a>.
<li>Map the whole ld.so hints file for a.out in one <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>, as was done for ELF.
<!-- ^ 20040814 -->
<li>Fix auto request sense handling in <a href="https://man.openbsd.org/ahc.4">ahc(4)</a> and <a href="https://man.openbsd.org/ahd.4">ahd(4)</a>.
<li>Stop a coredump in lib<a href="https://man.openbsd.org/regex.3">regex(3)</a>.
<li>Fix a busy-wait on transmit failure in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Add an extra check for a NULL message in the privsep code for <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>, <a href="https://man.openbsd.org/named.8">named(8)</a>, <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>, <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>, <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>, <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> and the X server.
<!-- ^ 20040813 -->
<li>Finally fix <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> problems with DNS non-availability at startup.
<li>Fix a bad dereference in <a href="https://man.openbsd.org/gcc.1">gcc(1)</a>.
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, ignore RFC2545 and don't allow IPv6 link-local addresses to be a next hop.
<li>Stop a core dump in <a href="https://man.openbsd.org/newfs.8">newfs(8)</a> by checking the block size against MAXBSIZE.
<li>Validate the superblock size recorded in the superblock, to prevent a panic.
<!-- ^ 20040812 -->
<li>Use atomicio instead of a few pieces of homegrown code in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<li>Some signedness cleanups in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<li>Add <a href="https://man.openbsd.org/dladdr.3">dladdr(3)</a> support to the dynamic loader, and extend <a href="https://man.openbsd.org/dlsym.3">dlsym(3)</a> to match 'standards'.
<li>Plug a memory leak in <a href="https://man.openbsd.org/kvm_close.3">kvm_close(3)</a>.
<li>Fix <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> MRT dumps from cloned sessions.
<li>With -q in effect, stop <a href="https://man.openbsd.org/grep.1">grep(1)</a> searching as soon as a match is found.
<li>Skip over non-UP interfaces in <a href="https://man.openbsd.org/pf.4">pf(4)</a>, fixing some problems with <a href="https://man.openbsd.org/pppd.8">pppd(8)</a>.
<li>Fix a missing <a href="https://man.openbsd.org/lseek.2">lseek(2)</a> error check in <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>.
<li>Only close a pipe if it's open in <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>.
<li>Fix a minor memory leak in <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>.
<li>Surround <a href="https://man.openbsd.org/pkg_delete.1">pkg_delete(1)</a>'s main loop with an eval{} block, so that <a href="https://man.openbsd.org/ldconfig.8">ldconfig(8)</a>, directory removal, manpage and font directory processing always occur.
<li>Back out the <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>-based <a href="https://man.openbsd.org/malloc.3">malloc(3)</a> for now, some architectures aren't working right yet.
<li>A stack of <a href="https://man.openbsd.org/ohci.4">ohci(4)</a> fixes from NetBSD.
<!-- ^ 20040811 -->
<li><strong>RELIABILITY FIX: Improved verification of ICMP errors in order to minimize the impact of ICMP attacks against TCP.</strong><br>
<a href="errata36.html#icmp">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Show the difference between the expected and received IP checksum in <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>.
<li>Now that <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> decodes the IP fragment returned in an ICMP error message, allow the TCP parser to print the source and destination ports from incomplete TCP headers.
<li>When <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> receives an ICMP error and -vv is in effect, also dump the IP packet embedded in the error message. Based on tcpdump.org.
<li>Fix a bad sizeof in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Implement better RFC 3706 Dead Peer Detection in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Fix the MED setting in outgoing <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> updates.
<li>In <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, handle DNS lookup failures properly in the case of server pools.
<li>Have <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>'s @mandir and @fontdir keywords do the right thing on package delete, and have @fontdir do the necessary font processing.
<li>Fix a dynamic group-related panic in <a href="https://man.openbsd.org/pf.4">pf(4)</a>.
<!-- ^ 20040810 -->
<li>Support the setenv capability in <a href="https://man.openbsd.org/login.conf.5">login.conf(5)</a> like in NetBSD, including '~' and '$' macro expansion for the homedir and username respectively.
<li>Import and merge Perl 5.8.5 from CPAN. Crank libperl's major number.
<li>3.5-current -> 3.6-beta.
<li>Stability and performance fixes to <a href="https://man.openbsd.org/ste.4">ste(4)</a> from FreeBSD.
<li>Fix an out-of-bounds write in libafs, caught by the <a href="https://man.openbsd.org/mmap.2">mmap(2)</a>-based <a href="https://man.openbsd.org/malloc.3">malloc(3)</a>.
<!-- ^ 20040809 -->
<li>Fix a missing initialisation of the route info structure in the kernel and stop a panic.
<li>Stop doing unnecessary PHY resets on <a href="https://man.openbsd.org/hme.4">hme(4)</a>.
<li>Remove the need for -w when setting values in <a href="https://man.openbsd.org/radioctl.1">radioctl(1)</a>.
<li>Fix <a href="https://man.openbsd.org/iostat.8">iostat(8)</a>'s average KB per transfer calculation.
<!-- ^ 20040808 -->
<li>Do a <a href="https://man.openbsd.org/chroot.2">chroot(2)</a> before running <a href="https://man.openbsd.org/ldconfig.8">ldconfig(8)</a> when DESTDIR is set in <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>.
<li>Add IPv6 router solicitation and router advertisement ICMP messages to the default <a href="https://man.openbsd.org/pf.4">pf(4)</a> filter loaded in <a href="https://man.openbsd.org/rc.8">rc(8)</a>.
<!-- ^ 20040807 -->
<li>Initial work on SGI MIPS64 support.
<li>Only close the stream passed to <a href="https://man.openbsd.org/pclose.3">pclose(3)</a> if it was opened by <a href="https://man.openbsd.org/popen.3">popen(3)</a>.
<li>In <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>, invoke the OpenBSD::Makewhatis module directly insteading of forking <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>.
<li>Reorganise <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a> to avoid using unnecessary code, and allow invocation as a <a href="https://man.openbsd.org/perl.1">perl(1)</a> module.
<li>Big update to <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, moving towards IPv6 support.
<li>New @lib marker in <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> packing lists, that lets the tools know when to run <a href="https://man.openbsd.org/ldconfig.8">ldconfig(8)</a>.
<li>Many more <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> fixes and improvements.
<!-- ^ 20040806 -->
<li>Refactor <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> etc. packing list code.
<li>Now that <a href="https://man.openbsd.org/malloc.3">malloc(3)</a> uses <a href="https://man.openbsd.org/mmap.2">mmap(2)</a> instead of <a href="https://man.openbsd.org/sbrk.2">sbrk(2)</a>, remove the rlimit check from the userland code and let the kernel do it.
<li>Use the new fd-passing functionality in <a href="https://man.openbsd.org/auth_subr.3">BSD_AUTH(3)</a> to implement record locking for S/Key logins.
<li>Stop trying to change the cwd of processes after a forced unmount.
<!-- ^ 20050805 -->
<li>Don't send signals from hardclock to prevent SMP problems in the near future.
<li>Add interrupt coalescing support to <a href="https://man.openbsd.org/fxp.4">fxp(4)</a>
<li>Fix jumbo frames support in <a href="https://man.openbsd.org/sk.4">sk(4)</a>.
<li>In <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, return DH group 14 when /etc/moduli is empty, fixing a hang.
<!-- ^ 20040804 -->
<li>Allow a file descriptor to be passed on the <a href="https://man.openbsd.org/auth_subr.3">BSD_AUTH(3)</a> back channel, to be used for stateful login scripts.
<li>Do a check for minval>maxval in <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>
<li>Change the minval and maxval parameters to <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a> from unsigned to signed long long, simplifying the code.
<li>Allow an autonegotiation to be forced at <a href="https://man.openbsd.org/mii.4">mii(4)</a> attach time.
<li>Don't crash the kernel in autoconf when matching an indirect device with verbose mode switched on.
<li>Allow NFS commits to be coalesced instead of always sending a commit for each block.
<li>MRT dump compatibility fixes for <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Add route label support to <a href="https://man.openbsd.org/route.8">route(8)</a> via the -label keyword.
<li>Introduce 'route labels', allowing up to 32 bytes of information to be attached to a route.
<li>Fix reference counting bugs in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>, avoiding leaks.
<li>Make disk geometry parameters in <a href="https://man.openbsd.org/i386/fdisk.8">fdisk(8/i386)</a> unsigned values to avoid some signedness problems.
<li>Don't trim device major and minor numbers to 8 bits when accessing device nodes over NFS.
<li>Allow <a href="https://man.openbsd.org/pfsync.4">pfsync(4)</a> to use a unicast sync peer, via the new 'syncpeer' keyword to <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>. This lets pfsync operate over IPsec.
<li>Show if locking is present in <a href="https://man.openbsd.org/pstat.8">pstat(8)</a> -f output.
<li>Add <a href="https://man.openbsd.org/fxp.4">fxp(4)</a> microcode for interrupt coalescing. From Intel via FreeBSD.
<li>Have <a href="https://man.openbsd.org/lint.1">lint(1)</a> allow more integer types in bitfields.
<!-- ^ 20040803 -->
<li>Set initial latency and cacheline size for <a href="https://man.openbsd.org/cardbus.4">cardbus(4)</a> devices.
<li>Out-of-line some functions in <a href="https://man.openbsd.org/isp.4">isp(4)</a> to shrink the kernel a bit.
<li>In <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> don't expire phase 2 SAs that are not yet established on receipt of a SIGHUP.
<li>Fix <a href="https://man.openbsd.org/pcmcia.4">pcmcia(4)</a> crashes (PR#3732, PR#3881). More work required.
<li>New @man element for packing lists.
<li>If LK_NOWAIT is passed to <a href="https://man.openbsd.org/vget.9">vget(9)</a>, return EBUSY if the vnode is <a href="https://man.openbsd.org/lock.9">lock(9)</a>ed.
<!-- ^ 20040802 -->
<li>Rewind the tape less often when repositioning an <a href="https://man.openbsd.org/st.4">st(4)</a> device.
<li>New <a href="https://man.openbsd.org/malloc.3">malloc(3)</a> implementation using <a href="https://man.openbsd.org/mmap.2">mmap(2)</a> instead of <a href="https://man.openbsd.org/sbrk.2">sbrk(2)</a>. This means that malloc now gets all the benefits of mmap's randomisation feature.
<li>Deal with upward-growing stacks when checking for the end of the stackgap in sys/compat/common.
<li>Major updates to <a href="https://man.openbsd.org/ahc.4">ahc(4)</a>. From FreeBSD.
<!-- ^ 20040801 -->
<li>Kill GATEWAY and IPFORWARDING <a href="https://man.openbsd.org/config.8">config(8)</a> options, since their functionality has long been available from <a href="https://man.openbsd.org/sysctl.8">sysctl(8)</a>.
<li>Have <a href="https://man.openbsd.org/httpd.8">httpd(8)</a> correctly use port information supplied by the client (if available) when UseCanonicalName is off.
<!-- ^ 20040731 -->
<li>New <a href="https://man.openbsd.org/bgpd.conf.5">bgpd.conf(5)</a> announce type "default-route", which will only announce the default route to a specified neighbour.
<li>Drain <a href="https://man.openbsd.org/hotplug.4">hotplug(4)</a>'s event queue on close, fixing a hang on shutdown (PR#3874).
<li>Fix <a href="https://man.openbsd.org/siop.4">siop(4)</a> probe problems on hppa.
<li>Call /bin/ksh instead of /bin/sh in the installer scripts, since the <a href="https://man.openbsd.org/ksh.1">ksh(1)</a> mannerisms will be disabled when invoked as <a href="https://man.openbsd.org/sh.1">sh(1)</a> soon.
<!-- ^ 20040730 -->
<li>Fix a missing initialisation when processing an RDE update in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Helpfully, don't truncate the lease file to zero length on <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a> startup.
<li>Keep a unique ID for each server <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> talks to.
<li>Display IKE Dead Peer Detection notifications in <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>.
<li>Fix the conditions under which <a href="https://man.openbsd.org/pool_put.9">pool_put(9)</a> frees a page.
<li>Fix NAT-T Aggressive Mode by putting NAT-D checks in the right place.
<li>Don't set the output filename in <a href="https://man.openbsd.org/compress.1">compress(1)</a> when in -t mode, avoiding an error which the input filename doesn't end in '.gz'.
<li>Drop ip6.int query support for IPv6 reverse lookups with <a href="https://man.openbsd.org/gethostbyaddr.3">gethostbyaddr(3)</a>.
<!-- ^ 20040729 -->
<li>Use <a href="https://man.openbsd.org/SHA1Pad.3">SHA1Pad(3)</a> in libskey, instead of relying on undocumented behaviour from <a href="https://man.openbsd.org/SHA1Final.3">SHA1Final(3)</a>.
<li>Add new timekeeping code, MI-only for now and not yet enabled anywhere.
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, prefer the path with the lowest MED value, not the highest.
<li>Have <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> retry failed DNS lookups from the config file every sixty seconds.
<li>Set the default localpreference in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> to 100 instead of 0.
<li>Fix a leak when passing a file descriptor between processes.
<li>Support lists-within-lists for the AS and prefix in <a href="https://man.openbsd.org/bgpd.conf.5">bgpd.conf(5)</a>.
<li>Support list expansion for the AS in <a href="https://man.openbsd.org/bgpd.conf.5">bgpd.conf(5)</a>.
<li>In <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>, only print TCP sequence numbers for SYN, FIN or RST packets if -vv is in effect.
<li>Use <a href="https://man.openbsd.org/pool.9">pool(9)</a>s instead of R_Malloc() for rtentry and rttimer structs. Adapted from NetBSD.
<li>Have <a href="https://man.openbsd.org/inetd.8">inetd(8)</a> set the user and group on UNIX domain sockets.
<li>Add -ttttt option (timestamp difference since the first packet) to <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>.
<li>In <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, call <a href="https://man.openbsd.org/setsid.2">setsid(2)</a> before doing re-exec.
<!-- ^ 20040728 -->
<li>Support pf-style macro expansion for the peer spec and prefix in <a href="https://man.openbsd.org/bgpd.conf.5">bgpd.conf(5)</a>.
<!-- ^ 20040727 -->
<li>Backport from Apache 2.0 a fix for a mod_usertrack coredump in <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>.
<!-- ^ 20040726 -->
<li>Some <a href="https://man.openbsd.org/atw.4">atw(4)</a> fixes from NetBSD.
<!-- ^ 20040725 -->
<li>Fix IP header alignment in <a href="https://man.openbsd.org/an.4">an(4)</a>.
<!-- ^ 20040724 -->
<li>Fix a use-after-<a href="https://man.openbsd.org/free.3">free(3)</a> in <a href="https://man.openbsd.org/gprof.1">gprof(1)</a>.
<!-- ^ 20040723 -->
<li>Add in a missing NULL check in DIOCCHANGERULE, preventing a rare crash.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Use 'directory/' instead of '@dir directory' in packing lists.
<li>Ignore <a href="https://man.openbsd.org/utime.3">utime(3)</a> failure in <a href="https://man.openbsd.org/cron.8">cron(8)</a> poke_daemon(), it doesn't matter any more since tickling the socket is enough.
<li>Use mutex instead of SIMPLELOCK around the kernel's deadproc list.
<li>Don't allow m_dup1() to return an mbuf chain when it should return a single mbuf.
<li>Start work on removing the size limit from the <a href="https://man.openbsd.org/mg.1">mg(1)</a> minibuffer.
<!-- ^ 20040722 -->
<li>Fix a problem with X on 64-bit architectures that was causing some <a href="https://man.openbsd.org/wsmouse.4">wsmouse(4)</a> input events to be lost.
<li>Don't clobber an existing /etc/fonts/local.conf in XF4 make install.
<li><a href="https://man.openbsd.org/kqueue.2">kqueue(2)</a> support for NFS, adapted from NetBSD.
<li>Use <a href="https://man.openbsd.org/fseek.3">fseek(3)</a> instead of <a href="https://man.openbsd.org/fseeko.3">fseeko(3)</a> in <a href="https://man.openbsd.org/hexdump.1">hexdump(1)</a>, since the argument being used is an off_t.
<li>Don't mess up the internal state of a <a href="https://man.openbsd.org/pipe.2">pipe(2)</a> when pipelock() fails, just return with an error.
<li>Fix an unnecessary fatal() in <a href="https://man.openbsd.org/sshd.8">sshd(8)</a> when the remote dies quickly.
<li>Don't display invalid usernames using <a href="https://man.openbsd.org/setproctitle.3">setproctitle(3)</a> in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> (OpenSSH bugzilla #899).
<li>Fix a multiple-free in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>More <a href="https://man.openbsd.org/umass.4">umass(4)</a> fixes from NetBSD.
<li>Fix CPU speed-related sound slowdown in <a href="https://man.openbsd.org/auich.4">auich(4)</a> (PR#3814).
<li>More pointless inline removal in the kernel.
<li>Implement outgoing interrupt pipes (part of the USB 1.1 spec) in <a href="https://man.openbsd.org/usb.4">usb(4)</a>. From FreeBSD.
<!-- ^ 20040721 -->
<li>Disable the XFree86 module loader on powerpc, ahead of upcoming malloc() changes.
<li>Strip the strcpy() and strcat() builtins from GCC 3 (as was done for GCC 2) to make them easier to spot and eradicate.
<li>New <a href="https://man.openbsd.org/cdce.4">cdce(4)</a> driver supporting USB CDC Ethernet devices.
<li>Use mutexes in a few places where SIMPLELOCK was used before.
<li>Add i386 and AMD machine-dependent mutex implementations.
<li>Introduce mutex support to the kernel. Not optimally efficient, and not MP-safe.
<li>New @info keywork to <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> etc., supporting GNU info documents.
<li>Reintroduce standalone <a href="https://man.openbsd.org/popa3d.8">popa3d(8)</a> after fixes and more testing.
<li>Stop <a href="https://man.openbsd.org/wicontrol.8">wicontrol(8)</a> displaying garbage when run against a nonexistent interface.
<li>Make <a href="https://man.openbsd.org/gprof.1">gprof(1)</a> work properly on 64-bit architectures where the text is above 4GB.
<!-- ^ 20040720 -->
<li>Display correct labels in the output from <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> -st.
<li>Fix an <a href="https://man.openbsd.org/atw.4">atw(4)</a> panic on detach.
<li>Correct <a href="https://man.openbsd.org/mg.1">mg(1)</a>'s error checks for <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>.
<li>Start work on a tutorial for the <a href="https://man.openbsd.org/make.1">make(1)</a> we have, not PMake.
<li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>ify <a href="https://man.openbsd.org/id.1">id(1)</a>.
<li>Fix a signal race in <a href="https://man.openbsd.org/make.1">make(1)</a>.
<!-- ^ 20040719 -->
<li>Fix a leak in <a href="https://man.openbsd.org/getrrsetbyname.3">getrrsetbyname(3)</a>.
<li>Don't let <a href="https://man.openbsd.org/xterm.1">xterm(1)</a> crash when selecting text.
<li>React more rationally in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> to (possibly) transient network errors from <a href="https://man.openbsd.org/recvfrom.2">recvfrom(2)</a>.
<li>More improvements to <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>'s query interval scaling.
<li>Return EINVAL if a negative offset is passed to <a href="https://man.openbsd.org/ftruncate.2">ftruncate(2)</a>.
<li>Don't check for the non-existent md5 of an '@link' in <a href="https://man.openbsd.org/pkg_delete.1">pkg_delete(1)</a>.
<li>Add bsd.rd to the list of filesets installed by default.
<li>For NFS and URL installs, assume the network is already set up the way the user wants it.
<!-- ^ 20040718 -->
<li>Back out standalone support from <a href="https://man.openbsd.org/popa3d.8">popa3d(8)</a>.
<li>Remove K&R support from libc/sys/makelintstub.sh.
<li>Fix a use-after-<a href="https://man.openbsd.org/free.3">free(3)</a> in <a href="https://man.openbsd.org/amd.8">amd(8)</a>'s AFS code.
<li>Fix missing <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> lastlog messages under certain circumstances (OpenSSH bugzilla #463).
<li>Add an stty command to the <a href="https://man.openbsd.org/i386/boot.conf.8">boot.conf(8/i386)</a> to set the serial console speed.
<li>Deal gracefully with a null sub-timezone in the installer.
<li>Unbreak the <a href="https://man.openbsd.org/pf.4">pf(4)</a> normaliser's use of the timestamp as an extension to the sequence number.
<!-- ^ 20040717 -->
<li>Add a ruleset optimiser to <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> (new -o and -oo options).
<li>In <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>, add a test of the lower bound when the upper bound is greater than LLONG_MAX.
<li>Updates to the <a href="https://man.openbsd.org/san.4">san(4)</a> driver.
<li>Kill <a href="https://man.openbsd.org/ksh.1">ksh(1)</a> history functions on non-interactive shells. Based on NetBSD.
<li>Back out a TCP change that left the ends of a newly-ESTABLISHED connection with asymmetric congestion windows.
<!-- ^ 20040716 -->
<li>Unbreak antenna diversity setting in <a href="https://man.openbsd.org/ancontrol.8">ancontrol(8)</a>.
<li>Stop <a href="https://man.openbsd.org/pkill.1">pkill(1)</a> whining when a process that it expects to be running has died, e.g. a privsep child that got reaped right away by the parent.
<li>Fix core dumps from <a href="https://man.openbsd.org/wicontrol.8">wicontrol(8)</a> when fetching values a card doesn't support.
<li>New -D option to <a href="https://man.openbsd.org/nc.1">nc(1)</a> switching on SO_DEBUG.
<li>In <a href="https://man.openbsd.org/pkill.1">pkill(1)</a>, skip the pkill process itself and any processes marked P_SYSTEM every time.
<li>The netiso code was removed from the tree. Noone cared.
<li>Many fixes and improvements to <a href="https://man.openbsd.org/atw.4">atw(4)</a> from NetBSD and the reference driver via NetBSD.
<!-- ^ 20040715 -->
<li>Add compat versions of <a href="https://man.openbsd.org/msgctl.2">msgctl(2)</a>, <a href="https://man.openbsd.org/semctl.2">semctl(2)</a> and <a href="https://man.openbsd.org/shmctl.2">shmctl(2)</a> with 16-bit mode_t.
<li>Add new versions of the <a href="https://man.openbsd.org/msgctl.2">msgctl(2)</a>, <a href="https://man.openbsd.org/semctl.2">semctl(2)</a> and <a href="https://man.openbsd.org/shmctl.2">shmctl(2)</a> functions to deal with the changes to mode_t (included in struct ipc_perm).
<li>Refactor SysV shared memory functions, allowing them to automagically handle conversions between new and old structures in compatibility mode.
<li>Back out last vestiges of IPv6 fragment reassembly using <a href="https://man.openbsd.org/pf.4">pf(4)</a> scrub.
<li>Drop the stratum calculation from <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Ignore clock synchronisation status returned to <a href="https://man.openbsd.org/rdate.8">rdate(8)</a> -n clients.
<li>Zero out the NFS generation number in struct stat in OpenBSD 3.5 and 4.3BSD compatibility modes.
<li>Only retransmit relevant NFS requests on nfs_reconnect().
<li>Rework <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>/<a href="https://man.openbsd.org/pkg_create.1">pkg_create(1)</a>'s @dirrm directive, and add @dir.
<!-- ^ 20040714 -->
<li>Fix a double-free and some backwards logic in <a href="https://man.openbsd.org/passwd.1">passwd(1)</a>.
<li>Finally remove the deprecated passwd.conf functionality and files.
<li>Change mode_t and nlink_t from u_int16_t to u_int32_t.
<li>Add weak-aliased __errno(3) function to libc and bump all library major versions.
<li>Have <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> return decent server statistics to the client, including the stratum, reference time and synchronisation status.
<li>Ignore obviously malformed queries in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Use <a href="https://man.openbsd.org/socketpair.2">socketpair(2)</a> instead of <a href="https://man.openbsd.org/pipe.2">pipe(2)</a> in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>In <a href="https://man.openbsd.org/pkg_create.1">pkg_create(1)</a>, mark links as what they are instead of computing a size and checksum for them.
<!-- ^ 20040713 -->
<!-- ^ 20040712 -->
<li>When <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> detects a file conflict, helpfully list the clashing file's originating package.
<li><a href="https://man.openbsd.org/strtoul.3">strtoul(3)</a> -> <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a> in <a href="https://man.openbsd.org/mg.1">mg(1)</a>.
<li>Deal with count==0 correctly in <a href="https://man.openbsd.org/newsyslog.8">newsyslog(8)</a>.
<li>Save process context in <a href="https://man.openbsd.org/namei.9">namei(9)</a> avoiding a crash (PR#3842).
<li>Back out IPv6 fragment reassembly under the <a href="https://man.openbsd.org/pf.4">pf(4)</a> scrub directive, it's not ready yet.
<li>Have <a href="https://man.openbsd.org/pf.4">pf(4)</a> create a group when adding a dynamic interface that's not yet plumbed in.
<li>More <a href="https://man.openbsd.org/usb.4">usb(4)</a> fixes from NetBSD.
<li>An endianness fix in <a href="https://man.openbsd.org/nm.1">nm(1)</a>.
<li>Fix lockup when unmounting a union filesystem.
<!-- ^ 20040711 -->
<li>Fix TCP NFS mount hangs after a server reset.
<li>Scale <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>'s query interval based on the local clock offset. More work to come.
<li>Endianness fixes to <a href="https://man.openbsd.org/ehci.4">ehci(4)</a> from NetBSD.
<li>Remove descriptions of partition types from <a href="https://man.openbsd.org/i386/fdisk.8">fdisk(8/i386)</a>, shrinking the executable.
<!-- ^ 20040710 -->
<li>HP-UX compatibility stuff for hppa.
<li>Fix <a href="https://man.openbsd.org/sed.1">sed(1)</a> failure when the last character of the line buffer was a backslash. From FreeBSD and NetBSD.
<li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>ify <a href="https://man.openbsd.org/procmap.1">procmap(1)</a>.
<li>Fix cd9660 buffer writing code.
<li>Improve <a href="https://man.openbsd.org/patch.1">patch(1)</a>'s detection of whether or not a patch has already been applied.
<li>Miscellaneous cleanup in <a href="https://man.openbsd.org/reboot.8">reboot(8)</a>.
<li>Don't use <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a> on a string that's not null-terminated in <a href="https://man.openbsd.org/ftp.1">ftp(1)</a>.
<li>Some ANSI prototypes in games, sbin and usr.sbin.
<li>Don't update the clock in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> without data.
<li>When saving a file, have <a href="https://man.openbsd.org/mg.1">mg(1)</a> check if it's null terminated and prompt the user to add it if desired.
<li>Rework <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>'s DNS handling to better deal with responses containing multiple addresses. Two keywords, 'server' and 'servers', with different semantics.
<li>Set the correct <a href="https://man.openbsd.org/poll.2">poll(2)</a> timeout in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<!-- ^ 20040709 -->
<li>A couple of network mask issues with <a href="https://man.openbsd.org/pf.4">pf(4)</a> tables.
<li>Fix a few missing <a href="https://man.openbsd.org/close.2">close(2)</a> and <a href="https://man.openbsd.org/free.3">free(3)</a> calls in an <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> error path.
<li>Fix overwriting of virtual MAC address by <a href="https://man.openbsd.org/carp.4">carp(4)</a> on FDDI interfaces.
<li>Don't mistakenly skip a file in <a href="https://man.openbsd.org/rcp.1">rcp(1)</a> and <a href="https://man.openbsd.org/scp.1">scp(1)</a> by mistake when <a href="https://man.openbsd.org/fchmod.2">fchmod(2)</a> fails twice.
<li>Sync <a href="https://man.openbsd.org/gdb.1">gdb(1)</a>'s kvm interface with FSF, adding 'kvm proc' and 'kvm pcb' commands.
<!-- ^ 20040708 -->
<li>Check for <a href="https://man.openbsd.org/stat.2">stat(2)</a> failure in <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>'s virtual filesystem.
<li>Fix a couple of MRT bugs in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Open the <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> script execution window from 1 to 3 seconds.
<li>Return -1 from <a href="https://man.openbsd.org/ftw.3">ftw(3)</a> and <a href="https://man.openbsd.org/nftw.3">nftw(3)</a> if <a href="https://man.openbsd.org/fts_close.3">fts_close(3)</a> fails without returning an error.
<li>Fix a memory leak in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Better client responses from <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Better time handling code for <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Fix a <a href="https://man.openbsd.org/systrace.1">systrace(1)</a> problem where argv[0] would be normalised and so break scripts that depend on the original path.
<li>Stop logging <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> responses with bad cookies, so attackers can't spam the log files. Back off logging in general.
<li>Don't listen by default in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>. New 'listen on' directive must be used instead.
<li>Allow for multiple IP addresses associated with hostnames listed in <a href="https://man.openbsd.org/ntpd.conf.5">ntpd.conf(5)</a>.
<li>Add a 'trustlevel' for <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> peers, using the peer's timely network responses to judge its worthiness to affect the clock offset, and to set how often queries are sent.
<!-- ^ 20040707 -->
<li>Implement filtering on peer replies in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Fix a couple of sizeof(wrongthing) in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>New -R option fro <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a> allowing <a href="https://man.openbsd.org/pf.4">pf(4)</a> to safely accept client PASV-mode connections to a protected FTP server.
<li>Have <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> log the IP address NTP replies and incorrect cookies are received from.
<li>Allow and resolve hostnames in <a href="https://man.openbsd.org/ntpd.conf.5">ntpd.conf(5)</a>.
<li>Add a couple of missing initialisations in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Set FTS_LOGICAL in <a href="https://man.openbsd.org/ftw.3">ftw(3)</a> and <a href="https://man.openbsd.org/nftw.3">nftw(3)</a> (unless FTS_PHYSICAL is explicitly passed in to the latter) as required by <a href="https://man.openbsd.org/fts.3">fts(3)</a>.
<li>Some string cleaning and other fixes to <a href="https://man.openbsd.org/ul.1">ul(1)</a>.
<li>Back out the bogus fix for the TCP simultaneous close bug from TCP/IP Illustrated vol. 2, exercise 29.5.
<li>Some <a href="https://man.openbsd.org/ehci.4">ehci(4)</a> fixes from NetBSD. Multiple devices can now be simultaneously active.
<li>Don't require -w for writes with <a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>.
<!-- ^ 20040706 -->
<li>Keep track of historical offset and delay values in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, for later use in filtering.
<li><strong>RELIABILITY FIX: Under certain network load the kernel can run out of stack space.</strong> This was encountered in an environment using CARP on a VLAN interface. this issue initially manifested itself as an FPU-related crash on bootup.<br>
<a href="errata36.html#rnd">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Fix a segfault in <a href="https://man.openbsd.org/routed.8">routed(8)</a> with <a href="https://man.openbsd.org/rtquery.8">rtquery(8)</a> messages from a non-local host (PR#3841).
<li>Fix <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>'s conversion from seconds to microseconds.
<li>Don't queue <a href="https://man.openbsd.org/hotplug.4">hotplug(4)</a> events if there's no <a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a> running. When the last listening daemon exits, flush pending events.
<li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>ify <a href="https://man.openbsd.org/chpass.1">chpass(1)</a>.
<li>Allow the argument to <a href="https://man.openbsd.org/fstab.5">fstab(5)</a> options groupquota and userquota to be optional
<li>Implement 'set nexthop blackhole' and 'set nexthop reject' in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Give a helpful error message when <a href="https://man.openbsd.org/pkg_create.1">pkg_create(1)</a> fails due to a missing @name.
<li>Remote the single-server limitation in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>.
<li>Use <a href="https://man.openbsd.org/adjtime.2">adjtime(2)</a> to sync the local clock in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, based on the median offset from the configured servers for now.
<li>Some <a href="https://man.openbsd.org/ehci.4">ehci(4)</a> updates from NetBSD.
<li>Keep track of the device and inode of objects loaded by <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a>, so that it's no longer possible to have the same object loaded from two different locations.
<!-- ^ 20040705 -->
<li>Die nicely if <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> can't read its config file.
<li>Fix a few missing <a href="https://man.openbsd.org/freeaddrinfo.3">freeaddrinfo(3)</a>s in <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>
<li>Drop the requirement in the installer for a 'b' partition. If one exists use it as swap, and don't allow a mount point to be created there.
<li>SCHED_LOCK() before proc_stop() in issignal(), avoiding a panic from <a href="https://man.openbsd.org/splassert.9">splassert(9)</a> #ifdef MULTIPROCESSOR.
<li>In <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> compute the local clock offset as per RFC 2030 section 5.
<li>Make the backspace and delete keys do the right thing by default in <a href="https://man.openbsd.org/xterm.1">xterm(1)</a>.
<!-- ^ 20040704 -->
<li><a href="https://man.openbsd.org/calloc.3">calloc(3)</a> the right structure in <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> client_peer_init().
<li>Some cleanup in <a href="https://man.openbsd.org/lam.1">lam(1)</a>.
<li>Fix a vnode leak in <a href="https://man.openbsd.org/mount.2">mount(2)</a>.
<li>Change <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>'s MRT dump code to use fd passing.
<li>Put <a href="https://man.openbsd.org/skey.1">skey(1)</a> code inside #ifdef SKEY in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>. From FreeBSD.
<li>Bypass the <a href="https://man.openbsd.org/pf.4">pf(4)</a> normaliser for now when forwarding ip6 packets.
<li>Support '@host:port' syntax in <a href="https://man.openbsd.org/syslog.conf.5">syslog.conf(5)</a>, allowing specification of the remote port.
<!-- ^ 20040703 -->
<li>Respect TMPDIR when creating a temporary mountpoint for the new <a href="https://man.openbsd.org/mount_mfs.8">mount_mfs(8)</a> -P option.
<li>Use <a href="https://man.openbsd.org/strtoul.3">strtoul(3)</a> instead of <a href="https://man.openbsd.org/strtol.3">strtol(3)</a> in <a href="https://man.openbsd.org/setmode.3">setmode(3)</a>, and return ERANGE consistently for invalid octal modes.
<li>Update <a href="https://man.openbsd.org/savecore.8">savecore(8)</a> to new-style kernel time handling.
<li>Allow (but ignore) the -E and -X options in src/distrib/special/more.
<li>Fix a few division-by-zeros in <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a>.
<!-- ^ 20040702 -->
<li>Fix rare cases of bogus permissions from <a href="https://man.openbsd.org/mtree.8">mtree(8)</a>, caused by a missing initialisation.
<li>Add a few md use-before-init sanity checks in <a href="https://man.openbsd.org/kvm.3">kvm(3)</a>.
<li>Check for a nonexistent name in <a href="https://man.openbsd.org/kvm.3">kvm(3)</a> and print a useful error message.
<!-- ^ 20040701 -->
<li>Use the evcount API for interrupts counting on hppa.
<li>Test for a tty break in the right place in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<li>Fix <a href="https://man.openbsd.org/inetd.8">inetd(8)</a>'s handling of UNIX domain sockets.
<li>In <a href="https://man.openbsd.org/mpt.4">mpt(4)</a> use SCSI_POLL during the probe since MP kernels don't enable interrupts until after the probe has completed.
<li><a href="https://man.openbsd.org/strlcpy.9">strlcpy(9)</a> -> <a href="https://man.openbsd.org/copyoutstr.9">copyoutstr(9)</a> when copying from kernel to userland in <a href="https://man.openbsd.org/vnd.4">vnd(4)</a>.
<!-- ^ 20040630 -->
<li>Allow shared library revision numbers to be overridden for libOSMesa, libXRes, libxkbfile and libkbui.
<li>Remove interface name verification code from <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>, so that once again a rule referring to a non-existent interface simply never fires. This has the handy side-effect of allowing pfctl to be run as non-root again.
<li>Unbreak MSCHAP in <a href="https://man.openbsd.org/pppd.8">pppd(8)</a> due to local <a href="https://man.openbsd.org/MD4Update.3">MD4Update(3)</a> differences.
<li>Don't allow bogus routes with a nexthop inside 127/8 in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>If no listener address is given to <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>, listen on every IP address.
<li>Change a few <a href="https://man.openbsd.org/memcpy.3">memcpy(3)</a> into <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a> in <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> when copying the interface name.
<li>Install <a href="https://man.openbsd.org/sendmail.8">sendmail(8)</a>'s libmilter by default.
<!-- ^ 20040629 -->
<li>In net80211, allow WEP keys to have lengths other than 40 or 108 bits.
<li>Don't try to <a href="https://man.openbsd.org/strlcpy.9">strlcpy(9)</a> from userland into the kernel in <a href="https://man.openbsd.org/vnd.4">vnd(4)</a>.
<li>Update zoneinfo files and <a href="https://man.openbsd.org/ctime.3">ctime(3)</a> to tzdata2004a. Respect Georgia's wish to have the right timezone again.
<li>Remove '#if 0' around the real code for net80211 ioctl WI_RID_PRISM2. This allows <a href="https://man.openbsd.org/atw.4">atw(4)</a> to do AP scanning via <a href="https://man.openbsd.org/wicontrol.8">wicontrol(8)</a>.
<li>New -z option for <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a> to show devices even if they haven't generated an interrupt.
<li>Use the new event counter API for interrupt counting on alpha, amd64, i386, macppc and sparc64.
<li>Add generic interrupt counter retrieval via <a href="https://man.openbsd.org/sysctl.3">sysctl(3)</a>, removing the need for i386-specific code in <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a> and <a href="https://man.openbsd.org/systat.1">systat(1)</a>.
<li>Add generic 'evcount' event counter API to the kernel.
<!-- ^ 20040628 -->
<li>Hack around a panic in 802.11 crypto startup due to the rnd device not being initialised.
<li>Add missing 802.11g and 802.11 'turbo' media types for the 802.11 framework to <net/if_media.h>.
<!-- ^ 20040627 -->
<li>Use congestion-sensitive IF_INPUT_ENQUEUE() in <a href="https://man.openbsd.org/gre.4">gre(4)</a>.
<li>Alignment fixes in <a href="https://man.openbsd.org/ppp.8">ppp(8)</a> lcp and ipcp handling.
<li>Allow the default console to be changed to a serial device from the installer. Only i386 uses this for now.
<li>In <a href="https://man.openbsd.org/fvwm.1">fvwm(1)</a>, use two va_list and <a href="https://man.openbsd.org/va_copy.3">va_copy(3)</a> instead of reusing a single va_list.
<li>New -P option to <a href="https://man.openbsd.org/mount_mfs.8">mount_mfs(8)</a>, used to populate the mfs volume immediately after creation.
<li>Make the root of an mfs partition inherit modes, owner and group from the mountpoint.
<li>Only add the <a href="https://man.openbsd.org/ipcomp.4">ipcomp(4)</a> header if compression is actually used, i.e. if the packet got smaller after compression.
<li>New timeslot keyword for <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>, used by telco cards.
<li>Add SIOC[GS]IFTIMESLOT ioctls for telco cards (currently just <a href="https://man.openbsd.org/san.4">san(4)</a>).
<li>New <a href="https://man.openbsd.org/san.4">san(4)</a> driver for Sangoma T1/E1 cards.
<li>More narrowing down of <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>'s privsep interface.
<li>After switching most of the device drivers to use generic ether_crc32_be(), add a table-driven implementation of this function. From FreeBSD PR#49957.
<li>Don't allow <a href="https://man.openbsd.org/nanosleep.2">nanosleep(2)</a> called with a zero timeout to sleep indefinitely, sleep for at least 1/<a href="https://man.openbsd.org/hz.9">hz</a> seconds.
<li>Enable <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a> UDP encapsulation by default.
<!-- ^ 20040626 -->
<li>Allow <a href="https://man.openbsd.org/keynote.1">keynote(1)</a> policy checking to be disabled in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Remove netiso code from <a href="https://man.openbsd.org/netstat.1">netstat(1)</a>.
<li>Use the extended protocol in <a href="https://man.openbsd.org/syslogc.8">syslogc(8)</a> to detect overflows (-o option).
<li>Extend the <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a> memory buffer protocol to include flags, starting with one to indicate that the buffers have overflowed.
<li>Fix <a href="https://man.openbsd.org/sshd.8">sshd(8)</a> re-exec file descriptor handling.
<li>Introduce interface groups, accessible via new <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a> keyword 'group'.
<li>String cleaning in <a href="https://man.openbsd.org/twm.1">twm(1)</a>.
<li>More work on IPv6 normalisation in <a href="https://man.openbsd.org/pf.4">pf(4)</a>.
<li>Add SMP support for amd64.
<li>Fix <a href="https://man.openbsd.org/re.4">re(4)</a> MAC address setup on big-endian machines.
<li>When renaming files in the <a href="https://man.openbsd.org/sftp.1">sftp(1)</a> server, fall back to <a href="https://man.openbsd.org/stat.2">stat(2)</a>-then-<a href="https://man.openbsd.org/rename.2">rename(2)</a> if the underlying filesystem doesn't support <a href="https://man.openbsd.org/link.2">link(2)</a>.
<li>Some more string cleaning in the X server.
<li>Fix a misplaced closing brace that was breaking xtrans unix socket creation (freedesktop.org bugzill #363).
<li>Add layer 2 tunnelling (tap) support to <a href="https://man.openbsd.org/tun.4">tun(4)</a>.
<li>Don't allow IPsec udpencap (4500/udp) to be a dynamic <a href="https://man.openbsd.org/bind.2">bind(2)</a> port.
<li>Enable propolice on XFree86 modules.
<li>In <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>, only do TCP wrappers checks when the incoming connection is on a socket.
<li>Narrow down <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>'s privsep interface a bit.
<li>Ditch autoconf stuff in libkeynote, it's not used here.
<li>Set stricter modes on shared memory segments used by the X server.
<li>Do IPv6 fragment reassembly with the <a href="https://man.openbsd.org/pf.4">pf(4)</a> scrub directive. Work in progress.
<li>String cleaning in the X server, <a href="https://man.openbsd.org/fvwm.1">fvwm(1)</a> and xtrans.
<li>Convert libXt to ANSI C. From XFree86 HEAD.
<!-- ^ 20040625 -->
<li>Some work on <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> multiprotocol support.
<li>Reprint the <a href="https://man.openbsd.org/i386/boot.8">boot(8)</a> identity string after changing the console line.
<li>Disable the <a href="https://man.openbsd.org/i386/boot.8">boot(8)</a> timeout once the user hits a key.
<li>Big tidyup of sys/net/rtsock.c.
<li>Some alignment fixups in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>In <a href="https://man.openbsd.org/systrace.4">systrace(4)</a>, quit early if detached after an <a href="https://man.openbsd.org/exec.3">exec*(3)</a>, and avoid a double-free.
<li>Remove the 8-page size limit on the <a href="https://man.openbsd.org/sysctl.3">sysctl(3)</a>-returned argv array.
<li>Strip netiso code from <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a> and <!-- 20040625 --><a href="https://man.openbsd.org/route.8">route(8)</a>.
<li>Make all kernel time access via functions so that locking is possible.
<li>Re-<a href="https://man.openbsd.org/exec.3">exec(3)</a> <a href="https://man.openbsd.org/sshd.8">sshd(8)</a> after <a href="https://man.openbsd.org/accept.2">accept(2)</a>. Can be turned off with the -r command line option.
<li>Add C++ inclusion guards into <pcap.h> and <keynote.h>.
<li>Add genericstable to the list of <a href="https://man.openbsd.org/sendmail.8">sendmail(8)</a> databases that /etc/mail/Makefile can create automatically.
<li>Don't <a href="https://man.openbsd.org/realloc.3">realloc(3)</a> so often when fetching process args in libkvm. Will be needed soon.
<li>If one of <a href="https://man.openbsd.org/pkill.1">pkill(1)</a>'s targets can't be killed, carry on and kill the rest instead of stopping.
<li>Fix SIGCHLD handling in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> so SIGSTOP and SIGCONT now work as expected.
<li>Gracefully handle line buffer overruns when reading boot.conf.
<li>Do <a href="https://man.openbsd.org/ehci.4">ehci(4)</a> on macppc as well.
<li>Crank libc and libpthread majors again after <a href="https://man.openbsd.org/hsearch.3">hsearch(3)</a> addition.
<li>Allow <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> to handle keys from X.509 certs embededed in keynote credentials.
<li>Implement <a href="https://man.openbsd.org/hsearch.3">hsearch(3)</a> and friends, for XPG4.2 reasons. From NetBSD.
<li>Update <a href="https://man.openbsd.org/sendmail.8">sendmail(8)</a> to 8.13.0.
<!-- ^ 20040624 -->
<li>Correct a missing dereference and unbreak logging of IPV4_ADDR_SUBNET IDs in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Fix the for loop that counts passed environment variables in multiplex <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<li>As with <a href="https://man.openbsd.org/sysctl.8">sysctl(8)</a>, make the -w option for writes with <a href="https://man.openbsd.org/wsconsctl.8">wsconsctl(8)</a> optional.
<li>Have <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> show the time between packets when prodded with -tttt.
<li>Some <a href="https://man.openbsd.org/setuid.2">setuid(2)</a>/<a href="https://man.openbsd.org/setgid.2">setgid(2)</a> fixes for <a href="https://man.openbsd.org/systrace.1">systrace(1)</a>.
<li>Shrink the <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> die-on-RTM_DELADDR window to one second.
<!-- ^ SLIST_FOREACH()... -->
<li>Remove another <a href="https://man.openbsd.org/stat.2">stat(2)</a>-then-<a href="https://man.openbsd.org/open.2">open(2)</a> from <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Enable <a href="https://man.openbsd.org/ahd.4">ahd(4)</a> by default for i386.
<li>Unbreak phase 1 IPV[46]_ADDR_SUBNET IDs in <a href="https://man.openbsd.org/isakmpd.conf.5">isakmpd.conf(5)</a>
<li>New config option 'Acquire-Only' (-a on the command line) for <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>, to stop the daemon playing with existing flows.
<li>Add <a href="https://man.openbsd.org/i386/cdboot.8">cdboot(8)</a>, a CD-specific second-stage bootstrap for i386.
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, support the NOPEER community from RFC 3706.
<!-- ^ 20040623 -->
<li>Import <a href="https://man.openbsd.org/atw.4">atw(4)</a> ADMtek ADM8211 wireless driver from NetBSD.
<li>Some <a href="https://man.openbsd.org/strncpy.3">strncpy(3)</a> -> <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a> in sys/compat/*.
<li>Add a no-emulation CD boot sector, based on a FreeBSD implementation.
<li>Only ignore <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>-generated RTM_DELADDR messages for a five-second window after process startup, so that new instances of dhclient (started outside this window) cause the older instance to die like before.
<li>Teach <a href="https://man.openbsd.org/mkhybrid.8">mkhybrid(8)</a> how to create an El Torito no-emulation boot CD (for i386), with a 2048-byte boot sector. <!-- When the commit logs are good I /do/ just quote them Tom :-) -->
<li>Import the generic IEEE 802.11 framework from FreeBSD and NetBSD.
<li>Fix probe hangs on some <a href="https://man.openbsd.org/ahd.4">ahd(4)</a> cards.
<li>In the X server, fix malloc corruption when sending multiple glyphs to RenderAddGlyphs() (XFree86 bugzilla #1276, freedesktop.org bugzilla #349).
<li>Rewrite <a href="https://man.openbsd.org/mount.8">mount(8)</a>'s mount options parser, making it more robust and removing the need for duplicate code in <a href="https://man.openbsd.org/mount_nfs.8">mount_nfs(8)</a> (PR#3642).
<li>Fix some logic errors introduced in recent string changes to <a href="https://man.openbsd.org/cron.8">cron(8)</a>.
<li>Don't exit <a href="https://man.openbsd.org/wicontrol.8">wicontrol(8)</a> if SIOCGWAVELAN fails, just print a warning and get whatever information is available without it.
<li>Change <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>'s internal prefix lookup from a hash table to a per-address family red-black <a href="https://man.openbsd.org/tree.3">tree(3)</a>.
<li>Don't assume in <a href="https://man.openbsd.org/make.1">make(1)</a> that '.' and '..' are the first two entries in a directory.
<li>Handle division-by-zero in <a href="https://man.openbsd.org/m4.1">m4(1)</a> with an error message instead of a core dump.
<li>Fix a segfault in <a href="https://man.openbsd.org/xdm.1">xdm(1)</a> if a LISTEN keyword without hosts is found in the Xaccess file.
<li>When decoding fragmented IPv6 packets in <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>, only try to interpret the contents of the first fragment.
<li>Back out source-based routing code while some problems are fixed.
<li>Start work on support for IPv6 routes (not just IPv6 sockets) in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Wire <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a> into the build.
<li>Fix libXi <a href="https://man.openbsd.org/XSelectExtensionEvent.3">XSelectExtensionEvent(3)</a> on 64-bit machines (freedesktop.org bugzilla #285).
<li>Remove pointless 5-second <a href="https://man.openbsd.org/sleep.3">sleep(3)</a>s in xtrans (freedesktop.org bugzilla #297).
<li>Sync <a href="https://man.openbsd.org/lynx.1">lynx(1)</a> to 2.8.5.rel2.
<li>Fix some endianness problems in X-Resource (freedesktop.org bugzilla #267).
<li>Add a new 'filter drop' flag to <a href="https://man.openbsd.org/bpf.4">bpf(4)</a>, so that an interface may be notified that a packet matches a filter and should be dropped.
<li>Update to <a href="https://man.openbsd.org/lynx.1">lynx</a> 2.8.5rel1.
<li>Have <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> drop IKE messages arriving on port 500 after the NAT-T exchange has switched to port 4500.
<li>Allow a <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> template peer with unknown AS to be an IBGP peer, instead of always being an EBGP peer.
<li>Allow the IKE parser in <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> to recognise a NAT-T payload.
<li>Teach <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>'s IKE parser about NAT-T keepalive packets.
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, don't reallocate the pollfd array every time the size changes because there's a risk that <a href="https://man.openbsd.org/realloc.3">realloc(3)</a> can fail. Reallocate only when there's a large potential saving.
<li>String cleaning in <a href="https://man.openbsd.org/cron.8">cron(8)</a>.
<li>time -> arc4random(9) in <a href="https://man.openbsd.org/sppp.4">sppp(4)</a>.
<li>Fix bogus 'panic: cylinder group too big' message from <a href="https://man.openbsd.org/newfs.8">newfs(8)</a>.
<li>Don't exit <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> on receipt of an RTM_DELADDR routing message, as this sometimes be generated by the dhclient itself. Instead, exit on RTM_NEWADDR iff an IP address is set that doesn't correspond to our lease. Not a perfect solution.
<li>More <a href="https://man.openbsd.org/sftp.1">sftp(1)</a> <a href="https://man.openbsd.org/ls.1">ls(1)</a> emulation: Don't show .dotfiles unless -a is specified.
<li>Handle interface resets gracefully in <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>.
<li>Do more retries on <a href="https://man.openbsd.org/st.4">st(4)</a> devices to allow the tape drive to recover after a reset.
<li>New xetc installation fileset, for all X configuration files installed under /etc.
<!-- ^ 20040622 -->
<li>Keep separate, 1-second resolution counters for walltime and uptime, and have code that only needs 1-second resolution use those instead of the microsecond counters.
<li>Clean up properly on in_ifinit() failure.
<li>Turn <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> NAT-T support on. The crowd goes wild.
<li>Implement NAT-T keepalive messages in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Check that UDP encapsulation is enabled (<a href="https://man.openbsd.org/sysctl.8">sysctl(8)</a> net.inet.esp.udpencap) before allowing encapsulated SAs to be created in the kernel.
<li>Add bounds-check <a href="https://man.openbsd.org/gcc.1">gcc(1)</a> attributes to libkern strl*() functions, and to strncpy().
<li>Implement <a href="https://man.openbsd.org/ls.1">ls(1)</a>-compatible sorting for <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>'s ls command.
<li>Allow <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a> on IPv6 link-local addresses.
<li>Have <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> save the destination port if it is NATed, as one might reasonably expect it to be when using NAT-Traversal.
<li>Don't leak a cloned PMTU route in netinet/ip_output.c.
<li>arc4random(9)ise a previously time-based ID in <a href="https://man.openbsd.org/atalk.4">atalk(4)</a>.
<li>Fix an fd leak in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> when multiple subsystems are present.
<li>Use arc4random(9) instead of the time for the ARCnet sequence ID.
<li>Use <a href="https://man.openbsd.org/getaddrinfo.3">getaddrinfo(3)</a> and <a href="https://man.openbsd.org/getnameinfo.3">getnameinfo(3)</a> instead of old-style conversion functions in <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>, but restrict resolution to AF_INET for now.
<li>Allow - with a warning - the old package keyword @src, in <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> etc.
<li>Import and merge <a href="https://man.openbsd.org/fontconfig.3">fontconfig</a> 2.2.2.
<li>Set the ESP marker on <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> captured packets for NAT-T SAs.
<li>If the <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> 'don't run scripts' (-I) option is present, don't run scripts.
<li>Have <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> turn on kernel ESP-in-UDP encapsulation for NAT-T SAs.
<li>Switch to port 4500 when required for <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> NAT-T exchanges.
<li>Use a red-black <a href="https://man.openbsd.org/tree.3">tree(3)</a> instead of a hash table to track multiply-linked inodes in <a href="https://man.openbsd.org/du.1">du(1)</a>.
<!-- ^ 20040621 -->
<li>Time is as dumb a 'random' value for IPX and ISO CLNP as it is for IP, so use arc4random(9) instead.
<li>Add IPv6 support for standalone <a href="https://man.openbsd.org/popa3d.8">popa3d(8)</a> as well as when run from <a href="https://man.openbsd.org/inetd.8">inetd(8)</a>.
<li>In <a href="https://man.openbsd.org/crypto.9">crypto(9)</a>, always store the value returned by <a href="https://man.openbsd.org/splimp.9">splimp(9)</a> so we have something meaningful to give to <a href="https://man.openbsd.org/splx.9">splx(9)</a>.
<li>Fix broken process runtimes in i386 MP.
<li>Use the RTF_MPATH routing flag to skip over multipath routes in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, since mpath make no sense for BGP.
<li>For <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>'s 'ls' command, make -l show user and group names, and -n show uid and gid just like real <a href="https://man.openbsd.org/ls.1">ls(1)</a>.
<li>New -I option for <a href="https://man.openbsd.org/diff.1">diff(1)</a>, which ignores changes matching the supplied regex.
<li>Have <a href="https://man.openbsd.org/vnconfig.8">vnconfig(8)</a> (with the -l option) use the new VNDIOCGET ioctl to fetch <a href="https://man.openbsd.org/vnd.4">vnd(4)</a> device status.
<li>New VNDIOCGET ioctl for <a href="https://man.openbsd.org/vnd.4">vnd(4)</a> devices.
<li>Fix a bad format string in <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>'s IKE parser.
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, use descriptor passing to allow the creation of new listen sockets on privileged ports.
<li>For multiplexed <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> connections, filter passed environment variables in the slave.
<li>Add bounds-check compiler attributes for <a href="https://man.openbsd.org/memcpy.3">memcpy(3)</a> etc.
<li>Remove support for TUBA (TCP/UDP over CLNP-Addresses Networks, as if you didn't know).
<li>Change <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> payload handling to deal with pre-RFC NAT-T messages.
<li>Don't try to carry on in <a href="https://man.openbsd.org/pax.1">pax(1)</a> if the <a href="https://man.openbsd.org/chdir.2">chdir(2)</a> needed by the <!-- undocumented --> -C option fails.
<li>Start work on both RFC 3706 Dead Peer Detection, and full-on NAT-Traversal support for <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Have <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> accept an unencrypted final IKE message (Aggressive Mode only) for compatibility reasons.
<li>New -dd switch for <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> to make debugging the privsep child easier.
<li>Let <a href="https://man.openbsd.org/popa3d.8">popa3d(8)</a> work with IPv6 sockets, no daemon mode support yet.
<li>Fix a rather serious SMP merge error affecting scheduler timeouts.
<li>Correct some logic errors in kernel malloc_debug().
<li>Fix congestion-sensitive IF_INPUT_ENQUEUE() so that freed <a href="https://man.openbsd.org/mbuf.9">mbuf(9)</a>s no longer show up on interface input queues under certain circumstances.
<!-- ^ 20040620 -->
<li>Require the setting of new route flag RTF_MPATH (corresponding switch -mpath for <a href="https://man.openbsd.org/route.8">route(8)</a>) to add a multipath route.
<li>Add defines in <net/if_media.h> for various telecoms carrier circuit types, i.e. E1, T1 etc.
<li>Save curproc in <a href="https://man.openbsd.org/svnd.4">svnd(4)</a> so that <a href="https://man.openbsd.org/lockmgr.9">lockmgr(9)</a> doesn't get passed a null process. Stops <a href="https://man.openbsd.org/svnd.4">svnd(4)</a> blocking indefinitely (PR#3214).
<li>Fix a null deref in <a href="https://man.openbsd.org/make.1">make(1)</a> if the .DEFAULT target has no commands.
<!-- ^ 20040619 -->
<li>Fix sending of jumbo frames on <a href="https://man.openbsd.org/em.4">em(4)</a> and <a href="https://man.openbsd.org/ti.4">ti(4)</a>.
<li>Unbreak <a href="https://man.openbsd.org/patch.1">patch(1)</a> when using standard diffs (i.e. no context).
<li>Allow the user to interrupt the setup of a multiplexed <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> connection (if, for example, the master gets wedged) by deferring signal setup until the connection is established.
<li>Merge adjacent hunks in <a href="https://man.openbsd.org/diff.1">diff(1)</a>, making the output more like that from GNU diff.
<li>Use <a href="https://man.openbsd.org/execvp.3">execvp(3)</a> instead of <a href="https://man.openbsd.org/execv.3">execv(3)</a> in <a href="https://man.openbsd.org/sftp.1">sftp(1)</a> so -S ssh will work.
<li>Use dynamically allocated pollfd struct for ntpd(8), just like bgpd.
<!-- ^ 20040618 -->
<li>Fix a bunch more memory leaks in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Be more careful in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> when evaluating the return code from X509_verify_cert(3).
<li>Add much of the NTP client functionality to ntpd(8).
<li>Abort <a href="https://man.openbsd.org/rdate.8">rdate(8)</a> on <a href="https://man.openbsd.org/calloc.3">calloc(3)</a> failure, <a href="https://man.openbsd.org/warnx.3">warnx(3)</a>ing and carrying on is just postponing the inevitable.
<li>Add an option (ControlMaster=ask) to require confimation via <a href="https://man.openbsd.org/ssh-askpass.1">ssh-askpass(1)</a> before allowing a multiplexed <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> connection.
<li>Support environment variable passing over multiplexed <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> connections.
<li>Back out the recent IPv6 multicast change so that mandatory groups get joined, but achieve the same result by testing for a new host address before adding the multicast entries.
<!-- ^ 20040617 -->
<li>Add '-n' option to <a href="https://man.openbsd.org/last.1">last(1)</a> to do the same job as -<em>number</em> in a less ugly way.
<li>Make <netinet/if_ether.h> safe for inclusion in C++ code.
<li>Fix a bad dereference leading to a memory leak in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>Fix a pasto in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>'s message decoder when printing IPv6 address/mask pairs.
<li>Unbreak the IN6_LOOKUP_MULTI() macro definition.
<!-- ^ 20040616 -->
<li>Add support for new crypto functions on upcoming VIA C3 processors.
<li>Build X on cats systems.
<li>Fix a null deref crash in <a href="https://man.openbsd.org/route.8">route(8)</a>'s show command.
<li>Don't add multiple multicast filter entries for a single IPv6 multicast address.
<!-- ^ 20040615 -->
<li>Remove the old <a href="https://man.openbsd.org/pf.4">pf(4)</a> BEGIN*, COMMIT* and ROLLBACK* ioctls.
<li>Use the newer <a href="https://man.openbsd.org/pf.4">pf(4)</a> BEGIN and COMMIT ioctls in <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>.
<li>Set the relay session id properly for outgoing <a href="https://man.openbsd.org/pppoe.8">pppoe(8)</a> packets.
<li>Teach <a href="https://man.openbsd.org/patch.1">patch(1)</a> to detect already-applied diffs when the diff creates a file, or adds to an empty file.
<li>In <a href="https://man.openbsd.org/du.1">du(1)</a>, use a hash table instead of a linear list to keep track of multiply-linked files.
<li>Use <a href="https://man.openbsd.org/fmt_scaled.3">fmt_scaled(3)</a> instead of do-it-yourself in <a href="https://man.openbsd.org/du.1">du(1)</a>.
<li>In <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a>, allow _dl_malloc() to allocate more than 4KB.
<li>Fix a few <a href="https://man.openbsd.org/stat.2">stat(2)</a>-then-<a href="https://man.openbsd.org/open.2">open(2)</a> races in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a>.
<li>After going to the trouble of pulling the tcp6 options into a contiguous region with IP6_EXTHDR_GET, use the returned pointer instead of doing mtod() again.
<li>Unbreak <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a> on older kernels.
<!-- ^ 20040614 -->
<li>Build an SMP kernel (bsd.mp) in make <a href="https://man.openbsd.org/release.8">release(8)</a> for i386, and allow the user to install it.
<li>Merge the SMP branch onto the trunk. Let the party begin.
<li>Just quit rather than panic in <a href="https://man.openbsd.org/cy.4">cy(4)</a> if interrupts can't be established for PCI.
<li>Fix an off-by-one buffer size in <a href="https://man.openbsd.org/sed.1">sed(1)</a>.
<li>Implement client-side session multiplexing (see <a href="https://man.openbsd.org/ssh_config.5">ssh_config(5)</a> options ControlMaster and ControlPath) for <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a href="https://man.openbsd.org/scp.1">scp(1)</a> and <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>. The server has supported this for some time.
<li>Add diffie-hellman-group14-sha1 KEX method support to <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<!-- ^ 20040613 -->
<li>Fix <a href="https://man.openbsd.org/pf.4">pf(4)</a> table add/replace commands at <a href="https://man.openbsd.org/securelevel.7">securelevel</a> 2.
<li>Have <a href="https://man.openbsd.org/mg.1">mg(1)</a>'s M-x gid command use the current word to try and guess which symbol to look up.
<li>Make <a href="https://man.openbsd.org/route.8">route(8)</a> 'show' command output more like netstat -r.
<li>Support the IPV6_USE_MIN_MTU option, mainly because BIND 9 wants it.
<!-- ^ 20040612 -->
<li>Disable <a href="https://man.openbsd.org/apm.4">apm(4)</a> on i386 MP machines.
<li>Show <a href="https://man.openbsd.org/systat.1">systat(1)</a> and <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a> where to find interrupt stats on MP i386 machines.
<li>Only print 'status/cpu#' in <a href="https://man.openbsd.org/top.1">top(1)</a> if there's more than one CPU.
<li>Fix a dereference-after-free (actually after <a href="https://man.openbsd.org/pool_put.9">pool_put(9)</a>) in <a href="https://man.openbsd.org/pf.4">pf(4)</a> tables.
<li>In <a href="https://man.openbsd.org/pax.1">pax(1)</a>, fix backreference substitution in -s mode and unbreak bad regex detection.
<li>Add a cpuid field to struct kproc2, and teach <a href="https://man.openbsd.org/ps.1">ps(1)</a> and <a href="https://man.openbsd.org/top.1">top(1)</a> how to make use of it.
<!-- ^ 20040611 -->
<li>Only install the Intel F00F bug workaround once on MP machines, avoiding a panic.
<li>Zero the restart counter before use, to fix a problem with <a href="https://man.openbsd.org/uhub.4">uhub(4)</a> port restarts giving up before starting. From FreeBSD.
<li>Fix a sizeof(pointer) bug in <a href="https://man.openbsd.org/carp.4">carp(4)</a>.
<li>Don't leak a softc when detaching a <a href="https://man.openbsd.org/carp.4">carp(4)</a> cloned interface.
<li><strong>SECURITY FIX: Multiple vulnerabilities have been found in <a href="https://man.openbsd.org/httpd.8">httpd(8)</a> / mod_ssl.</strong> This is the second of two sets of fixes.<br>
<ul>
<li><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0488">CAN-2004-0488</a>: Stack-based buffer overflow ... in mod_ssl, when mod_ssl is configured to trust the issuing CA, may allow attackers to execute arbitrary code via a client certificate with a long subject DN.
<li><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0492">CAN-2004-0492</a>: [mod_proxy] Reject responses from a remote server if sent an invalid (negative) Content-Length: header.
</ul>
<a href="errata36.html#httpd">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li><strong>SECURITY FIX: As <a href="http://seclists.org/lists/fulldisclosure/2004/Jun/0191.html">disclosed</a> by Thomas Walpuski, <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> is still vulnerable to unauthorized SA deletion.</strong> An attacker can delete IPsec tunnels at will.<br>
<a href="errata36.html#isakmpd">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Add src/lib/libintl and libc i18n directories to the repository.
<!-- ^ 20040610 -->
<li>First merge of SMP code into the trunk, mainly structures to allow gradual introduction of the new APIs.
<li>Fix IPv4 name-to-address translation, so invalid octet values won't be accepted and CIDR address/mask pairs finally work the way one expects.
<li>In <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>'s privsep <a href="https://man.openbsd.org/localtime.3">localtime(3)</a> replacement, deal better with timezones with granularity of less than one hour.
<li><strong>SECURITY FIX: Multiple remote vulnerabilities have been found in the <a href="https://man.openbsd.org/cvs.1">cvs(1)</a> server</strong> that will allow an attacker to crash the server or possibly execute arbitrary code with the same privileges as the CVS server program.<br>
<a href="errata36.html#cvs3">A source code patch is available</a>.
<li>On i386 (ppro and above), use the calibrated value for the CPU speed over the value returned by the CPU itself, fixing PR#3814.
<li>Use a dynamically allocated array of pollfds in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
<li>Try to prevent <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> deleting SAs on receipt of malicious IKE messages.
<li><a href="https://man.openbsd.org/rdate.8">rdate(8)</a> improvements:
<ul>
<li>RFC 2030 compliance for NTP mode.
<li>Much more robust error handling, with better messages.
<li>Better detection of stale or spoofed NTP responses.
<li>Support for multiple addresses if returned by the DNS, trying each listed server until one works.
</ul>
<!-- ^ 20040609 -->
<li>Remove NMBCLUSTERS settings from <a href="https://man.openbsd.org/config.8">config(8)</a>.
<li>Factor out TCP md5sig code into tcp_subr.c:tcp_signature().
<li>Fix buffer usage in <a href="https://man.openbsd.org/umass.4">umass(4)</a> CBI transfers (NetBSD PR#25676).
<!-- ^ 20040608 -->
<li>Allow <a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a> code in <a href="https://man.openbsd.org/ksh.1">ksh(1)</a> to actually work.
<li>Break the dependency of libc on <pthread.h>. Bump the major version of libc and libpthread.
<li>Teach <a href="https://man.openbsd.org/kdump.1">kdump(1)</a> about <a href="https://man.openbsd.org/gpio.4">gpio(4)</a> ioctls.
<li>Allow an authtype (-a option) in <a href="https://man.openbsd.org/skeyinit.1">skeyinit(1)</a> even when secure mode (-s) is in effect.
<li>Add an alternative algorithm to make <a href="https://man.openbsd.org/pf.4">pf(4)</a> table deletions faster for a small number of deleted items.
<li><strong>SECURITY FIX: Multiple vulnerabilities have been found in <a href="https://man.openbsd.org/httpd.8">httpd(8)</a> / mod_ssl.</strong> This is the first of two sets of fixes.<br>
<ul>
<li><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0020">CAN-2003-0020</a>: Apache does not filter terminal escape sequences from its error logs.
<li><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0987">CAN-2003-0987</a>: Apache mod_digest does not properly verify the nonce of a client response by using an AuthNonce secret.
</ul>
<a href="errata36.html#httpd">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<!-- ^ 20040607 -->
<li>Out-of-line <a href="https://man.openbsd.org/spl.9">spl(9)</a> functions in SMP on i386, mirroring the UP change to fix VFS corruption.
<li>Add SMP-related devices for i386 on the SMP branch.
<li>Many fixups on the SMP branch for non-MP kernels.
<li>Rework <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>'s listen socket handling to better support multiple listen addresses.
<li>New -src and -srcmask options for <a href="https://man.openbsd.org/route.8">route(8)</a> supporting the new source-address routing functionality.
<li>New -S flag for <a href="https://man.openbsd.org/netstat.1">netstat(1)</a> and <a href="https://man.openbsd.org/route.8">route(8)</a>, to show the new source selector part of a route entry.
<li>Extend the routing table to allow routing based on source as well as destination. IPv4 only for now, more to come.
<li>Set the <a href="https://man.openbsd.org/skey.1">skey(1)</a> first sequence number to 100 as promised by the manpage.
<li><a href="https://man.openbsd.org/spl.9">spl(9)</a> and alignment fixes in portalfs.
<!-- ^ 20040606 -->
<li>Much merging and fixup as SMP is readied for prime-time.
<li>Resurrect the '<a href="https://man.openbsd.org/fork1.9">fork1(9)</a>-can-take-null-retval' change, this time leaving the setup of struct proc setup well alone.
<li>Fix a bug with X and <a href="https://man.openbsd.org/wsmouse.4">wsmouse(4)</a> where an event of unknown type could cause a whole batch of other events to be discarded.
<li>Set the length field in the TCP packet header earlier in tcp_output().
<li>New <a href="https://man.openbsd.org/re.4">re(4)</a> driver supporting RealTek Gigabit Ethernet devices.
<!-- ^ 20040605 -->
<li>Clean up multicast addresses when unconfiguring <a href="https://man.openbsd.org/carp.4">carp(4)</a> interfaces.
<li>Clarify <a href="https://man.openbsd.org/user.8">user(8)</a> docs and error messages (PR#3792).
<li>Add startup code for <a href="https://man.openbsd.org/i386/hotplugd.8">hotplugd(8)</a> to <a href="https://man.openbsd.org/rc.8">rc(8)</a> and <a href="https://man.openbsd.org/rc.conf.8">rc.conf(8)</a>.
<li>New <a href="https://man.openbsd.org/usbhid.3">usbhid(3)</a> API <a href="https://man.openbsd.org/hid_start.3">hid_start(3)</a>, a non-noisy version of <a href="https://man.openbsd.org/hid_init.3">hid_init(3)</a>.
<!-- ^ 20040604 -->
<li>Don't send mail at all from <a href="https://man.openbsd.org/cron.8">cron(8)</a> if MAILTO is set but empty.
<li>Cleanup in <a href="https://man.openbsd.org/at.1">at(1)</a>/<a href="https://man.openbsd.org/cron.8">cron(8)</a>:
<ul>
<li>Check argc before using argv[0] in <a href="https://man.openbsd.org/at.1">at(1)</a>.
<li>Print the right filename for a job in the email.
<li>Reset the sockaddr length value every time before <a href="https://man.openbsd.org/accept.2">accept(2)</a>.
</ul>
<li>New <a href="https://man.openbsd.org/i386/gpioctl.8">gpioctl(8)</a> program to go with new <a href="https://man.openbsd.org/gpio.4">gpio(4)</a>.
<li>Have <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> fall back to user nobody if user _dhcp doesn't exist. Helps with upgrades.
<li>In <a href="https://man.openbsd.org/getopt.3">getopt(3)</a>/<a href="https://man.openbsd.org/getopt_long.3">getopt_long(3)</a>, don't allow an optional argument if it begins with a '-'.
<li>Allow <a href="https://man.openbsd.org/cron.8">cron(8)</a> to accept crontabs with more strict permissions than is the default.
<li>New General Purpose I/O device <a href="https://man.openbsd.org/gpio.4">gpio(4)</a>. Only enabled on i386 for now.
<li>New '!!<prog>' syntax for <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>, used to force messages from the named program to only go to certain files regardless of the rest of syslog.conf.
<li>Update <a href="https://man.openbsd.org/file.1">file(1)</a>'s magic to that from file version 4.09, with a few local changes and additions.
<!-- ^ 20040603 -->
<li>Use the old _nointr <a href="https://man.openbsd.org/pool.9">pool(9)</a> allocator for <a href="https://man.openbsd.org/pf.4">pf(4)</a> tables.
<li>Rearrange the <a href="https://man.openbsd.org/pool.9">pool(9)</a> allocator code so the old allocation method can be used again.
<li>Use the quirks mechanism to fix <a href="https://man.openbsd.org/wdc.4">wdc(4)</a> hangs on Geode SC1100 devices (PR#3729).
<li>Implement SCSI-style quirks for <a href="https://man.openbsd.org/wdc.4">wdc(4)</a>.
<li>Use <a href="https://man.openbsd.org/errx.3">errx(3)</a> instead of <a href="https://man.openbsd.org/err.3">err(3)</a> in <a href="https://man.openbsd.org/find.1">find(1)</a> when errno isn't set by the error.
<li>When calling <a href="https://man.openbsd.org/err.3">err(3)</a> after a <a href="https://man.openbsd.org/malloc.3">malloc(3)</a> failure, don't specify a message.
<li>Cleanup in <a href="https://man.openbsd.org/rm.1">rm(1)</a>.
<li>Support multicast on <a href="https://man.openbsd.org/kue.4">kue(4)</a>.
<li>Add IPv6 support to <a href="https://man.openbsd.org/uucpd.8">uucpd(8)</a>.
<li>Trivial changes (sockaddr_in -> sockaddr_storage) to add IPv6 support to <a href="https://man.openbsd.org/rpc.rquotad.8">rpc.rquotad(8)</a>, <a href="https://man.openbsd.org/rpc.rstatd.8">rpc.rstatd(8)</a>, <a href="https://man.openbsd.org/rpc.rusersd.8">rpc.rusersd(8)</a>, <a href="https://man.openbsd.org/rpc.rwalld.8">rpc.rwalld(8)</a> and <a href="https://man.openbsd.org/rpc.sprayd.8">rpc.sprayd(8)</a>.
<!-- ^ 20040602 -->
<li>Mark nullfs memory as M_MISCFSMNT instead of M_UFSMNT.
<li>Swing hppa to gcc3, and enable shared library support.
<li>Unbreak <a href="https://man.openbsd.org/xterm.1">xterm(1)</a> jump-scrolling on big-endian 64-bit systems.
<li>Remove a somewhat useless current-process privilege check in the IPv6 input path. Based on KAME.
<li>Compatibility fixes for some <a href="https://man.openbsd.org/sk.4">sk(4)</a> devices (PR#3061). Workaround from FreeBSD.
<!-- ^ 20040601 -->
<li>Initialise the <a href="https://man.openbsd.org/carp.4">carp(4)</a> interface structure before use.
<li>Don't advertise an absurd TCP receive window on 64-bit architectures. From NetBSD.
<li>Some Single UNIX Specification updates in <limits.h>.
<li>Better error handling for <a href="https://man.openbsd.org/rm.1">rm(1)</a>'s -P option. From FreeBSD.
<li>First cut at a home-grown NTP daemon. Not built by default yet.
<li>Remove ugly string code in <a href="https://man.openbsd.org/bpf.4">bpf(4)</a>, used when no unit number was given to BIOCSETIF.
<li>Fix a long-standing KAME pasto that was breaking SIOC[DG]LIFADDR.
<li>Remove a bunch of redundant errno declarations.
<li>Use generic crc32 code instead of local efforts in many Ethernet devices.
<!-- ^ 20040531 -->
<li>Sync <a href="https://man.openbsd.org/xl.4">xl(4)</a> with FreeBSD, bringing in a lot of bug fixes and improvements.
<li>Check the NTP server clock status returned to <a href="https://man.openbsd.org/rdate.8">rdate(8)</a> and don't use the response if the server thinks its clock is unsynchronised.
<li>In uvm_map_clean() (called by <a href="https://man.openbsd.org/msync.2">msync(2)</a> and <a href="https://man.openbsd.org/madvise.2">madvise(2)</a>), only free writable pages, and don't free copy-on-write pages because the permissions aren't known.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Only call <a href="https://man.openbsd.org/getprotobynumber.3">getprotobynumber(3)</a> from <a href="https://man.openbsd.org/ppp.8">ppp(8)</a> when the logging level is high enough to need the result. From FreeBSD.
<li>Some Emacs compatibility tweaks to binutils. Use the classic executable start addresses if <a href="https://man.openbsd.org/ld.1">ld(1)</a> option -Z (disable W^X) is active.
<li>New privsep user and group _ntp.
<li>New monitoring daemon <a href="https://man.openbsd.org/i386/hotplugd.8">hotplugd(8)</a> to go with <a href="https://man.openbsd.org/hotplug.4">hotplug(4)</a>.
<li>New <a href="https://man.openbsd.org/hotplug.4">hotplug(4)</a> device to pass device attach and detach events up to userland. Available for alpha, amd64, i386, macppc and sparc64, only enabled on i386 for now.
<li>Use generic CRC code, remove bogus LLADDR use and handle multicast ranges better in <a href="https://man.openbsd.org/nge.4">nge(4)</a> and <a href="https://man.openbsd.org/sf.4">sf(4)</a>.
<!-- ^ 20040530 -->
<li>Fix <a href="https://man.openbsd.org/bge.4">bge(4)</a> multicast reception.
<li>Add a description field for network interfaces, accessible via <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a> command 'description' and <a href="https://man.openbsd.org/ioctl.2">ioctl(2)</a>s SIOC[GS]IFDESCR.
<li>Use library CRC32 routines instead of a local implementation in <a href="https://man.openbsd.org/sk.4">sk(4)</a>.
<li>Fix a memory leak in <a href="https://man.openbsd.org/ccdconfig.8">ccdconfig(8)</a>.
<li>Remove multicast addresses and disable promiscuous mode when destroying a <a href="https://man.openbsd.org/carp.4">carp(4)</a> interface.
<li>Make <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a> up and down commands work as expected for <a href="https://man.openbsd.org/carp.4">carp(4)</a> devices.
<li>Create a few more USB devices by default in MAKEDEV(8).
<!--- ^ 20040529 -->
<li>Clean up <a href="https://man.openbsd.org/scsi.4">scsi(4)</a> sense error logic and display. Based on NetBSD.
<li>Allow machine-dependent filesystem options to be passed for the root filesystem in src/distrib/miniroot.
<li>Remove the old package tools (src/usr.sbin/pkg_install) from the tree.
<li>Have <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> detect the absence of <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a> and tcpmd5 capabilities at runtime.
<li>More helpful boot-time display for <a href="https://man.openbsd.org/aac.4">aac(4)</a>.
<li>Fix a typo in umapfs' <a href="https://man.openbsd.org/unmount.2">unmount(2)</a> implementation.
<li>Backwards compatibility fixes in the hash functions, unbreaking <a href="https://man.openbsd.org/skey.1">skey(1)</a> with sha1.
<li>Make <a href="https://man.openbsd.org/bpf.4">bpf(4)</a> devices clonable.
<li>Make AFS <a href="https://man.openbsd.org/flock.2">flock(2)</a>/<a href="https://man.openbsd.org/fcntl.2">fcntl(2)</a> locks work on the local system.
<!-- ^ 20040528 -->
<li>Make accounting optional, with the new <a href="https://man.openbsd.org/config.8">config(8)</a> option (wait for it) ACCOUNTING.
<li>Allow login names longer than eight characters in <a href="https://man.openbsd.org/uucpd.8">uucpd(8)</a>.
<li>Fix a memory leak in a <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> error path.
<li>When shutting the system down, finalise accounting before the VFS to avoid panics.
<li>Fix TCP corruption on <a href="https://man.openbsd.org/rl.4">rl(4)</a> cards.
<li>Much better rulefile parsing for <a href="https://man.openbsd.org/brconfig.8">brconfig(8)</a>.
<li>Pool efficiency improvements:
<ul>
<li>Lower the default high watermark from UINT_MAX to 8 pages.
<li>Modify uvm_km_getpage() to take a waitok flag and use it instead of uvm_km_alloc_poolpage1() for both the default and nointr pool allocators.
<li>Use the default allocator for the mbuf and mbuf cluster pools.
</ul>
<!-- ^ 20040527 -->
<li>Correct a missing <a href="https://man.openbsd.org/freeaddrinfo.3">freeaddrinfo(3)</a> in <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>.
<li>Fix a NetBSD merge error in the TCP syncache, allowing IPv6 to use it.
<li>Fix fd leaks in a few <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> error paths.
<li>Call <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> contructors after setting up the debugger, similar to recent destructor changes.
<li>In <a href="https://man.openbsd.org/cu.1">cu(1)</a>/<a href="https://man.openbsd.org/tip.1">tip(1)</a>, if one process dies then kill the other ourselves.
<li>In <a href="https://man.openbsd.org/rdate.8">rdate(8)</a> NTP mode, send a 64-bit random number as the 'current time' field, which the server copies back in its response. This avoids sending out the current system time, and makes it slightly harder for an attacker to send spoof replies on behalf of the real server.
<li>Use <a href="https://man.openbsd.org/_exit.2">_exit(2)</a> instead of <a href="https://man.openbsd.org/exit.3">exit(3)</a> in the <a href="https://man.openbsd.org/sftp.1">sftp(1)</a> child process.
<!-- ^ 20040526 -->
<li>Include the hostname in <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a> memory-buffered entries.
<li>Since the per-arch _dl_bcopy() in <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> is in all cases a simple for loop and not painstakingly optimised assembler, just use a single machine-independent version.
<li>Allow <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> _dl_find_symbol() to return a pointer to the container object.
<li>Handle interface removals gracefully in <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>, now that <a href="https://man.openbsd.org/poll.2">poll(2)</a> wakes it up on interface detach.
<li>Wake up any <a href="https://man.openbsd.org/poll.2">poll(2)</a>ing process when a <a href="https://man.openbsd.org/bpf.4">bpf(4)</a> descriptor is closed.
<li>If a <a href="https://man.openbsd.org/bpf.4">bpf(4)</a>-monitored interface is detached, send any buffered packets up to userland.
<li>Scale the <a href="https://man.openbsd.org/bge.4">bge(4)</a> timeout value correctly.
<li>Since ULLONG_MAX+1 == 0 mod ULLONG_MAX+1, let the <a href="https://man.openbsd.org/carp.4">carp(4)</a> sc_counter wrap around all by itself.
<!-- ^ 20040525 -->
<li><a href="https://man.openbsd.org/bktr.4">bktr(4)</a> fixes from NetBSD and FreeBSD.
<li>Move the addition of atexit destructors right to the end of <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> setup (after the <a href="https://man.openbsd.org/gdb.1">gdb(1)</a> helper code) so they can be debugged.
<li>If <a href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> is running under <a href="https://man.openbsd.org/ldd.1">ldd(1)</a>, exit earlier before a whole bunch of unnecessary setup gets done.
<li>Check ifp is valid before using it in carp_setroute(), avoiding a panic.
<li>Helpfully, use the right function names in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> error messages.
<li>Fix multicast problems with <a href="https://man.openbsd.org/sk.4">sk(4)</a>.
<li>Don't leak a socket in <a href="https://man.openbsd.org/ndp.8">ndp(8)</a>.
<li>Back out the recent <a href="https://man.openbsd.org/fork1.9">fork1(9)</a> change due to compatibility problems.
<!-- ^ 20040524 -->
<li>New MaxAuthTries option for <a href="https://man.openbsd.org/sshd_config.5">sshd_config(5)</a>.
<li>Allow the retval parameter to <a href="https://man.openbsd.org/fork1.9">fork1(9)</a> to be NULL (as the manpage says) without causing a panic.
<li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>ify <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>.
<li>Add <a href="https://man.openbsd.org/gscsio.4">gscsio(4)</a> and <a href="https://man.openbsd.org/lmtemp.4">lmtemp(4)</a> I2C drivers.
<li>Add I2C framework (<a href="https://man.openbsd.org/iic.4">iic(4)</a>, <a href="https://man.openbsd.org/iic.9">iic(9)</a>) based on that in NetBSD and enable on i386.
<li>Fix a <a href="https://man.openbsd.org/stat.2">stat(2)</a>-then-<a href="https://man.openbsd.org/open.2">open(2)</a> race in <a href="https://man.openbsd.org/isakmpd.8">isakmpd(8)</a> when checking the policy file for root-only permissions.
<li>Let <a href="https://man.openbsd.org/ipsecadm.8">ipsecadm(8)</a> delete tcpmd5 SAs.
<li>Fix <a href="https://man.openbsd.org/ipsecadm.8">ipsecadm(8)</a> so that <a href="https://man.openbsd.org/ipcomp.4">ipcomp(4)</a> can be used.
<li><strong>SECURITY FIX: With the introduction of IPv6 code in <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>, one test on the 'requestPort' resource was deleted by accident.</strong> This makes xdm create the chooser socket even if XDMCP is disabled in xdm-config, by setting requestPort to 0. See <a href="http://bugs.xfree86.org/show_bug.cgi?id=1376">XFree86 bugzilla</a> for details.<br>
<a href="errata36.html#xdm">A source code patch is available</a>.<br>
<a href="stable.html">[Applied to stable]</a>
<li>Fix a boot-time crasher in <a href="https://man.openbsd.org/ahd.4">ahd(4)</a>.
<li>Add (to i386 and amd64) <a href="https://man.openbsd.org/ehci.4">ehci(4)</a>, a USB Enhanced Host Controller Interface driver, for USB 2.0 support.
<li>Finally implement StackGhost buffer overflow exploit protection on sparc.
<li>Correct a missing <a href="https://man.openbsd.org/splx.9">splx(9)</a> in an igmp_joingroup() error path.
<li>Fix VFS corruption (due to <a href="https://man.openbsd.org/gcc.1">gcc(1)</a>) on i386 by out-of-lining the <a href="https://man.openbsd.org/spl.9">spl(9)</a> functions.
<!-- ^ 20040523 -->
<li>Fix size_t != off_t truncation in <a href="https://man.openbsd.org/ahd.4">ahd(4)</a>.
<li>Make <a href="https://man.openbsd.org/vmstat.8">vmstat(8)</a>'s disk columns wide enough to show transfer numbers for modern disks without writing into the next column.
<!-- ^ 20040522 -->
<li>Change the <a href="https://man.openbsd.org/pf.4">pf(4)</a> anchor path component separator from ':' to '/'. <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> now requires any anchor spec containing the separator to be in quotes.
<li>Make /root/.klogin optional in /etc/mtree/special.
<li>Import and merge <a href="https://man.openbsd.org/gdb.1">gdb(1)</a> version 6.1.
<li>Support RFC2796 Route Reflection in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, removing the need for an IBGP mesh.
<li>Add support for dynamic network announcements in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>.
<li>Don't rely on ifp's validity when setting a floor on the TCP MSS in ip_input.c.
<li>Allow an <a href="https://man.openbsd.org/ssh.1">ssh(1)</a> user to cancel a port forward (OpenSSH bugzilla #756).