cvs commit: src/bin/cat

Matthew Dillon dillon at apollo.backplane.com
Sun Nov 7 15:21:31 PST 2004


:
:Liam J. Foy wrote:
:> liamfoy     2004/11/04 13:31:37 PST
:> 
:> DragonFly src repository
:> 
:>   Modified files:
:>     bin/cat              cat.c 
:>   Log:
:>   - Remove unnecessary selection statement to see if buf == NULL.
:>   - Don't use fileno to get stdout, just use STDOUT_FILENO
:>   - Fix malloc err message
:>   
:>   OK'ed by: Joerg and Jeroen
:>   
:>   Revision  Changes    Path
:>   1.12      +8 -10     src/bin/cat/cat.c
:> 
:> 
:> http://www.dragonflybsd.org/cvsweb/src/bin/cat/cat.c.diff?r1=1.11&r2=1.12&f=u
:
:
:Removing the check for (buf == NULL):
:1. Introduces a memory leak -- equal to (bsize * (n - 1)) where n is the 
:number of times raw_cat is called.
:2. Adds unecessary work -- stdout never changes
:
:
:Also, the constant 1024 in the buffer size check should be replaced by 
:the posix constant BUFSIZ.
:
:- Jason
    
    Whoops, quite right.  I missed the fact that 'buf' was a static when
    I review Liam's commit.

    The original code isn't so good either.  While I don't expect we
    will be cat'ing multiple block devices I think it would probably still
    be a good idea to fstat/resize the buffer on a per-descriptor basis.
    The expensive is minimal.

    I'll just go ahead and fix it.  Don't worry about it, Liam.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>






More information about the Commits mailing list