Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Jun 1999 07:34:25 +1000
From:      Greg Black <gjb-freebsd@gba.oz.au>
To:        Wes Peters <wes@softweyr.com>
Cc:        cjclark@home.com, FreeBSD Security <freebsd-security@FreeBSD.ORG>
Subject:   Re: Secure Deletion 
Message-ID:  <19990626213426.7899.qmail@alice.gba.oz.au>
In-Reply-To: <3773F67A.CC9B6215@softweyr.com>  of Fri, 25 Jun 1999 15:36:58 CST
References:  <199906250212.WAA07810@cc942873-a.ewndsr1.nj.home.com>  <3773F67A.CC9B6215@softweyr.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Wes Peters writes:

>  * Obliterate - a simple program to obliterate file contents.

I note that the error in the posted program with the size of the
overwrite bit patterns was addressed in a follow-up.

However, there is another issue that makes it a "bad" program:

> void
> obliterate(char *fname)

[...]

> int
> main(int argc, char *argv[])
> {
>     while (--argc)
>     {
> 	obliterate(argv[argc]);
>     }
> 
>     return 0;
> }

Given that there is a bunch of error conditions that are checked
for and which may cause the program to abort, surely making it
report success on exit, regardless of what actually happened, is
a Bad Thing?

It would be trivial to make obliterate() return an int (e.g., 1
for an error and 0 for success).  This would then give us a
main() like this (with a refinement to process the arguments in
the order given rather than backwards, because I don't like to
surprise people):

int
main(int argc, char **argv)
{
    int status = 0;

    while (--argc)
        status |= obliterate(*++argv);

    return status;
}

Disclaimer: I haven't compiled or tested the program and I have
not reviewed it thoroughly.  These comments are from a cursory
read.

-- 
Greg Black -- <gjb@acm.org> or <gjb@computer.org>
Fight censorship in Australia: <http://www.efa.org.au>;



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990626213426.7899.qmail>