On 1/4/08, Jon <[EMAIL PROTECTED]> wrote: > rm -P wont work... I looking to clean up deleted data ... not securely > delete a file.
i was curious how they do this, but it's nothing fancier than creating a big file and filling it up. i notice that they are using the magic guttman incantation. i am inherently distrusting of anyone who does, because it means they didn't really pay attention. nobody uses MFM or RLL disks. i was also curious how they claimed to clear inodes. so i looked at the code, and technique is pretty weak. and the code is a complete clusterfuck. regardless of whether it (mostly) works or not, i firmly believe that such juvenile code should not be allowed near any secure data. void sdel_wipe_inodes(char *loc, char **array) { char *template = malloc(strlen(loc) + 16); int i = 0; int fail = 0; int fd; if (verbose) printf("Wiping inodes ..."); array = malloc(MAXINODEWIPE * sizeof(template)); strcpy(template, loc); if (loc[strlen(loc) - 1] != '/') strcat(template, "/"); strcat(template, "xxxxxxxx.xxx"); while(i < MAXINODEWIPE && fail < 5) { __sdel_random_filename(template); if (open(template, O_CREAT | O_EXCL | O_WRONLY, 0600) < 0) fail++; else { array[i] = malloc(strlen(template)); strcpy(array[i], template); i++; } } FLUSH; if (fail < 5) { fprintf(stderr, "Warning: could not wipe all inodes!\n"); } array[i] = NULL; fd = 0; while(fd < i) { unlink(array[fd]); free(array[fd]); fd++; } free(array); array = NULL; FLUSH; if (verbose) printf(" Done ... "); }