home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / unix / bsd / 5611 < prev    next >
Encoding:
Text File  |  1992-09-12  |  12.2 KB  |  318 lines

  1. Newsgroups: comp.unix.bsd
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!wupost!spool.mu.edu!agate!dog.ee.lbl.gov!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
  3. From: terry@cs.weber.edu (A Wizard of Earth C)
  4. Subject: 386BSD PARTIAL PATCH KIT NOW AVAILABLE
  5. Message-ID: <1992Sep13.010735.1171@fcom.cc.utah.edu>
  6. Sender: news@fcom.cc.utah.edu
  7. Organization: Weber State University  (Ogden, UT)
  8. Date: Sun, 13 Sep 92 01:07:35 GMT
  9. Lines: 307
  10.  
  11. I have uploaded the first 19 patches and the patchkit software to the
  12. directory /pub/incoming/terry on agate.berkeley.edu.  This is not a
  13. complete set, as there are still 10-20 patches not yet in patchkit format.
  14.  
  15. The following is a list of the patches in the current patch kit.
  16. Remember that the patchkit expects to start with a "virgin" kernel... no
  17. strange hacks allowed.
  18.  
  19. If you install a new machine, the patches will "just install".  If you are
  20. the type that hacks around, it probably won't, but you'll you'll be able
  21. figure out what files each patch modifies from the file named "PATCH" in
  22. the subdirectory for each patch under "ready".
  23.  
  24. The "README" file is in the tar file, but it is also packed seperately so
  25. you can tell how to install it without having to install it first 8-).
  26.  
  27. -----------------------------------------------------------------------------
  28. PATCHES IN THE INITIAL PATCH KIT (TOTAL: 19 PATCHES)
  29. -----------------------------------------------------------------------------
  30.  
  31. patch00001
  32. PATCH:        KERNEL REBUILD
  33. AUTHOR:        Terry Lambert (terry@icarus.weber.edu)
  34. DESCRIPTION:
  35.  
  36.     This patch fixes the missing vers.o problem which prevents the
  37. kernel from being rebuilt.
  38.  
  39.  
  40. patch00002
  41. PATCH:        BIG MEMORY HANG
  42. AUTHOR:        William Jolitz
  43. DESCRIPTION:
  44.  
  45.     Because of the number of kernel map entries being to small
  46. and an inappropriate calculation for the number of buffer pages, it was
  47. possible for the kernel to hang if you had more than 8 Meg of memory
  48. installed in your system.
  49.  
  50.  
  51. patch00003
  52. PATCH:          INCORRECT CMOS RAM SIZE CAUSES CRASH
  53. AUTHOR:        Terry Lambert (terry@icarus.weber.edu)
  54. DESCRIPTION:
  55.  
  56.         This patch fixes the problem encountered on HP Vectra, AT&T
  57. 6386E/33 WGS, AT&T StarServer E, and AT&T 6386/25 WGS systems where
  58. the CMOS RAM size is not what was expected.  It also has fixes to
  59. allow running small kernels in 640K, and warns the user of conditions
  60. which may cause the kernel to fail to boot correctly.
  61.  
  62.  
  63. patch00004
  64. PATCH:        FIRST SECTOR IN MULTISECTOR READ IN BAD144 TABLE
  65. AUTHOR:        Frank Maclachlan (fpm@crash.cts.com)
  66. DESCRIPTION:
  67.  
  68.     The bad144 table search code at finds the sector in the bad144
  69. table and replaces the block number, cylinder, head, and sector addresses
  70. with values corresponding to the replacement sector.  The sector count
  71. register is loaded with the number of sectors in the entire transfer.
  72. This is wrong; it *MUST* be set to *one* sector.  A read would return
  73. the wrong data in sectors after the first; a write would *overwrite*
  74. other replacement sectors or even the bad144 table on the last track.
  75.  
  76.  
  77. patch00005
  78. PATCH:        WHATIS COREDUMP
  79. AUTHOR:        Andrew Moore (alm@netcom.com)
  80. DESCRIPTION:
  81.  
  82.     The whatis program had two unitinitialized pointers which would
  83. cause it to core dump sporadically depending on the initial stack contents.
  84.  
  85.  
  86. patch00006
  87. PATCH:        CRASH FOR PARENT (.) REFERENCE AFTER CHROOT
  88. AUTHOR:        Christoph Robitschko (chmr@fstgs01.tu-graz.ac.at)
  89. DESCRIPTION:
  90.  
  91.     When chroot() was used to change the apparent root directory
  92. for a process, a reference to "./", the parent directory of the new
  93. "root" directory, the system "panic"ed.
  94.  
  95.  
  96. patch00007
  97. PATCH:        GREENMAN BUGFIX KIT
  98. AUTHOR:        David Greenman (davidg@agora.uucp)
  99. DESCRIPTION:
  100.  
  101. 1.    Buffers were being immediately aged after read, greatly reducing
  102.     file system performance.
  103. 2.    The file system buffer cache hash calculation resulted in hash
  104.     collision occuring 100% of the time.
  105. 3.    File system buffers were allocated twice.  They were also deallocated
  106.     twice, so there was not a memory leak, but freebufspace was incorrect
  107.     and too much memory was being used.
  108.  
  109.  
  110. patch00008
  111. PATCH:        MAN PATHBUF OVER 1K
  112. AUTHOR:        James W. Dolter
  113. DESCRIPTION:
  114.  
  115.     In the function config.c:cadd() the pointer bp isn't recalculated
  116. when the pathbuf needs to be realloced.  If realloc moves the storage
  117. 'bp' is left hanging.  The bug manifests itself when you modify man.conf
  118. such that the pathbuf expands beyond 1k.
  119.  
  120.  
  121. patch00009
  122. PATCH:        MBUF ALLOCATION FLAGS
  123. AUTHOR:        Wolfgang Solfrank (ws@tools.de)
  124. DESCRIPTION:
  125.  
  126.     While the flags in sys/mbuf.h define M_DONTWAIT and M_WAIT in terms
  127. of M_NOWAIT and M_WAITOK, these flags are only used for the kernel malloc.
  128. But the actual code in kern/uipc_mbuf.h uses kmem_malloc, which has
  129. only a parameter canwait.  This parameter has just the opposite meaning
  130. from the flag values above.  This may result in occasional hangs of the
  131. system (if mbuf allocation with M_DONTWAIT is called which may result in
  132. a wait) or panics or other nasty things (if called with M_WAIT which may
  133. return a NULL pointer that is not expected and as such not tested by the
  134. calling code).
  135.  
  136.  
  137. patch00010
  138. PATCH:        SCROLLING BACKWORDS ON CONSOLE CAUSES CRASH
  139. AUTHOR:        Frank Maclachlan (fpm@crash.cts.com)
  140. DESCRIPTION:
  141.     I was horrified whilst scrolling backwards in a file with the less
  142. pager at my console when my 386BSD system suddenly rebooted.  Subsequent
  143. tests revealed that the system would crash whenever I scrolled rapidly
  144. backwards through this file using less.
  145.  
  146. Most files won't cause the system to crash.  To demonstrate the failure,
  147. do the the following (if you don't mind watching your system crash):
  148.  
  149.         hd /usr/mdec/bootwd >junk       # create a file
  150.         less junk                       # invoke less
  151.         G                               # go to the end of the file
  152.         ^B^B^B...                       # rapid repeated control B's to
  153.                                         #  scroll backwards
  154.  
  155.  
  156. patch00011
  157. PATCH:        COPY ON WRITE FOR TEXT PAGES
  158. AUTHOR:        Paul Kranenburg (pk@cs.few.eur.nl)
  159. DESCRIPTION:
  160.  
  161.     The 386 does not generate a page protection fault while it is
  162. executing in supervisor mode :-(, so copy on write handling never takes
  163. place when the kernel stuffs data into a process's text- or any other
  164. non-anonymous segment.  So these cases must be explicitly checked for.
  165.  
  166. NOTE:        This is a security hole where it is possible for any
  167.         normal user with access to the debugger and read access
  168.         to any suid root program to become root!  You should
  169.         apply this patch immediately!
  170.  
  171.  
  172. patch00012
  173. PATCH:        RING BUFFER LENGTH INCORRECTLY REPORTED
  174. AUTHOR:        Stephen McKay (robert@psych.psy.uq.oz.au [forwarder])
  175. DESCRIPTION:
  176.  
  177.     The RB_LEN() macro in /usr/include/sys/tty.h is sometimes out by 1.
  178. In particular, in the case of a buffer containing a single character at the
  179. very end, RB_LEN() would return 0.  This caused ttread() to block until a
  180. 2nd character was read before delivering them both.  The user would find
  181. RAW mode programs such as vi would occasionally (1 in 1024 keypresses) get
  182. "stuck" requiring a second keypress to bring it to life.
  183.  
  184. WARNING:    On the whole, this seems reasonable... HOWEVER, I feel the
  185.         problem may be due to the ?: expression grouping.  In
  186.         particular, perhaps all that's missing is some parenthesis
  187.         around "RBSZ - 1 - ((rp)->rb_hd - (rp)->rb_tl)".
  188.  
  189.  
  190. patch00013
  191. PATCH:        CSH SEGMENTATION VIOLATION
  192. AUTHOR:        Ed Hudson (elh@netcom.com
  193. DESCRIPTION:
  194.  
  195. I have a prompt setting alias in my .cshrc for "cd", that looks like:
  196.     alias cd 'cd \,* > /dev/null; set noglob; set xdirs = `dirs`; se
  197. The bug manifests itself when I type:
  198.     cd
  199.     cd bin01
  200. ...csh says "Segmentation fault", and on a repeated attempt, dies.
  201.  
  202. It seems to occur whenever the target directory is 5 characters in name.
  203. I think that it is blowing up when the statement "set xdirs = `dirs`" is
  204. executed.  If I modify /usr/src/bin/csh/alloc.c so that the number of
  205. bytes requested is automatically increased by 4 (on entry to malloc),
  206. then the problem goes away.
  207.  
  208. WARNING:    This is a workaround.  The real problem is with the ALIGN
  209.         macro getting a 0 for its offset, then the allocated buffer
  210.         adds 4 regardless, causing overflow of the buffer on copy.
  211.  
  212.  
  213. patch00014
  214. PATCH:        CAN'T kill -1 OR kill -15 DAEMONS STARTED IN /etc/rc
  215. AUTHOR:        Paul Kranenburg (pk@cs.few.eur.nl)
  216. DESCRIPTION:
  217.  
  218.     The init program doesn't set up the proper signal disposition for
  219. the process (sh) it creates to run /etc/rc.  While all signal handlers are
  220. reset to SIG_DFL, the signal mask is left unchanged causing SIGHUP and
  221. SIGTERM to be masked in all daemons started from /etc/rc.
  222.  
  223.  
  224. patch00015
  225. PATCH:        MAKE HUNG ON SINGLE "-" ARGUMENT
  226. AUTHOR:        John Woods (jfw@eddie.mit.edu)
  227. DESCRIPTION:
  228.  
  229. [ This is a patch rolled in from work done on 4.3Reno/NET2 ]
  230.  
  231. There is a bug in the new make from 4.3Reno and also present in the Net2
  232. release (as found on uunet).  A command line argument consisting of a lone
  233. dash (-) causes an infinite loop ("make - make" was an excellent test case).
  234.  
  235.  
  236. patch00016
  237. PATCH:        NFS SERVER CREATE TRUNCATES FILE
  238. AUTHOR:        Arne Henrik Juul (arnej@Lise.Unit.NO)
  239. DESCRIPTION:
  240.  
  241. The file was always truncated if it existed. The reason why it only
  242. happens when used from certain NFS clients, is that some clients does
  243. not do a NFS create request at all if the file already exists.
  244.  
  245.  
  246. patch00017
  247. PATCH:        DMA SPECIAL HANDLING/DMA CHANNEL 4-7 TRANSFER COUNT
  248. AUTHOR:        Frank Maclachlan (fpm@crash.cts.com)
  249. DESCRIPTION:
  250.  
  251. At line 389 in isa_dmarangecheck(), the automatic variable priorpage
  252. is used without being initially set to 0.  This causes the function
  253. to flag special handling for virtually all DMA transfer requests.
  254. Also, no check is made for DMA requests crossing DMA page boundaries
  255. (64k for DMA chans 0..3, 128k for DMA chans 4..7).  This problem is
  256. masked by priorpage not being initialized - almost all DMA is done
  257. to/from safe 'bounce' buffers which don't cross DMA page boundaries
  258. and the data are block moved from/to the user's buffer.
  259.  
  260. In line 359, nbytes is doubled by shifting it left 1 bit; it
  261. should instead be divided by 2 by shifting right 1 bit position.
  262. This occurs when any of the word mode DMA channels (4..7) is used.
  263.  
  264.  
  265. patch00018
  266. PATCH:        CORRECT MINOR NUMBER FOR COM PORT (SELECT FAILS)
  267. AUTHOR:        Christoph Robitschko (chmr@fstgds01.tu-graz.ac.at)
  268. DESCRIPTION:
  269.  
  270. I had the problem with select() not working on com ports. I got no
  271. response from a post regarding this one, so I started to look into it
  272. myself. I found out that the com driver calculates unit = minor(dev) -1;
  273. This has the following implications:
  274.         /dev/com1 corresponds to COM0, /dev/com2 to COM1 (very confusing
  275.                 in kernel messages)
  276.         It is incompatible with the config file entries com1 at..., com2 at...
  277.         Unpredictible results will occur if someone puts a com0 at.. in
  278.                 his config file.
  279.         It is incompatible with the DOS usage of COM1, COM2 (But who cares 8-)
  280.         ttselect() calculates unit = minor(dev), and uses this as an index in
  281.                 com_tty. Because this index is different from that used
  282.                 in the com driver, select() on /dev/com1 looks at
  283.                 /dev/com2 and select() on /dev/com2 looks at an undefined
  284.                 entry in com_tty and returns always true.
  285.  
  286. WARNING: RE-mknod /dev/com1, /dev/com2, and modify your kernel config!
  287.  
  288.  
  289. patch00019
  290. PATCH:        CLEAN UP SLIP INTERFACE TO KEEP FROM HANGING
  291. AUTHOR:        Poul-Henning Kamp (phk@data.fls.dk)
  292. DESCRIPTION:
  293.  
  294. Here is a patch to clean up the interface between the tty-drivers, in
  295. particular the com driver, and the sl# interfaces, this is not a work-around
  296. but a genuine bug-fix.
  297.  
  298. Symptoms: after a number of "com#: silo overflow" SLIP ceases to work.
  299.  
  300. Overview of the problem:  the slip interface will disregard any notice
  301. from the tty-driver on problems (parity errors, framing errors or overruns),
  302. which basicly means the one might as well throw the packet away right away.
  303. Also overrun in the packetizing will go relatively unnotized.
  304. -----------------------------------------------------------------------------
  305.  
  306.  
  307.                     Terry Lambert
  308.                     terry_lambert@gateway.novell.com
  309.                     terry@icarus.weber.edu
  310. ---
  311. Any opinions in this posting are my own and not those of my present
  312. or previous employers.
  313. -- 
  314. -------------------------------------------------------------------------------
  315.                                         "I have an 8 user poetic license" - me
  316.  Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
  317. -------------------------------------------------------------------------------
  318.