Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!wuarchive!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!bloom-beacon!eru!luth!sunic!liuida!prodix!isadora!hacker From: hacker@isadora.ikp.liu.se (Goran Larsson [Hacker of Hackefors]) Newsgroups: comp.os.minix Subject: Re: Wmail 2.6 (Posted for F. van Kempen; I haven't looked at it) Summary: crap, crap and crap Keywords: flame, Wmail, lint Message-ID: <527@isadora.ikp.liu.se> Date: 10 Nov 89 02:54:51 GMT References: <4465@ast.cs.vu.nl> Sender: news@prodix.liu.se Reply-To: hacker@isadora.ikp.liu.se Organization: Hackers Home, Hackefors, Linkoping, Sweden Lines: 81 Wmail 2.6 (Posted for F. van Kempen; I haven't looked at it) ^^^^^^^^^^^^^^^^^^^^^^ I think you should have looked at it, because this program is loaded with bugs and the author did not run it through lint or a spelling checker before handing it over to you. [1] "adress" and "adressee" in source and doc. Use double "d" instead. [2] Some warnings like unsigned/signed clashes: > fwrite, arg. 3 used inconsistently > fwrite, arg. 3 used inconsistently > fwrite, arg. 3 used inconsistently > fwrite, arg. 3 used inconsistently > lwrite, arg. 3 used inconsistently > malloc, arg. 1 used inconsistently > malloc value used inconsistently > malloc, arg. 1 used inconsistently > malloc value used inconsistently > malloc value used inconsistently > read, arg. 2 used inconsistently > read, arg. 2 used inconsistently > umask, arg. 1 used inconsistently [3] Global string "adressee" used instead of the argument "name"! > "wmdeliver.c": warning: argument name unused in function send_remote [4] Some unused variables: > "wmcreate.c": warning: bp unused in function edit_mail > "wmdeliver.c": warning: c unused in function updatebox > "wmdeliver.c": warning: c unused in function deliver > "wminteract.c": warning: i unused in function interact > "wminteract.c": warning: p unused in function interact > "wmmain.c": warning: bp unused in function readbox [5] Some ugly bugs: > "wmmain.c": warning: function readbox has return(e); and return; > "wmread.c": warning: function lwrite has return(e); and return; Both should have "return 0;" at the end. [6] "misdone" is set to 1 if the user types q, Q, n or N at the --More-- prompt, but the code in "showlet()" never checks this. Thus it is impossible to interrupt the printing of a mail with q, Q, n or N. [7] At the beginning of "interract()": if (interrupted = TRUE) printf("\n"); This sets "interrupted" to true and then none of , +, t, or p works. I don't know what this variable should do; if the "=" had been a "==", then the code would have set "interrupted" at SIGINT and after that none of , +, t, or p would have worked, WHY? [8] The first time the [1]& prompt displays, some commands does not work: [1]& p Message 1: (empty!?!?) [1]& + (does not work!) [1]& - (correct) Top of Mailbox [1]& p Message 1: (there it is!) From ..... ..... [1]& [9] Was this program ever tested? ! _ ! ! Goran Larsson [The Hacker of Hackefors] --+-! Hackefors, Linkoping, SWEDEN (See) +46 13-155535 (Hear) !-+-- ...!uunet!sunic!liuida!prodix!isadora!hacker (UUCP) ! ! hacker@isadora.ikp.liu.se (Internet) ! Mmh, Yes