21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

fsync(fd);<br />

return 0;<br />

}<br />

static int pattern_pass(int fd, unsigned char *buf, size_t bufsz, size_t filesz) {<br />

size_t towrite;<br />

if (!bufsz || lseek(fd, 0, SEEK_SET) != 0) return -1;<br />

while (filesz > 0) {<br />

towrite = (filesz > bufsz ? bufsz : filesz);<br />

if (!write_data(fd, buf, towrite)) return -1;<br />

filesz -= towrite;<br />

}<br />

fsync(fd);<br />

return 0;<br />

}<br />

int spc_fd_wipe(int fd) {<br />

int count, i, pass, patternsz;<br />

struct stat st;<br />

unsigned char buf[SPC_WIPE_BUFSIZE], *pattern;<br />

static unsigned char single_pats[16] = {<br />

0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,<br />

0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff<br />

};<br />

static unsigned char triple_pats[6][3] = {<br />

{ 0x92, 0x49, 0x24 }, { 0x49, 0x24, 0x92 }, { 0x24, 0x92, 0x49 },<br />

{ 0x6d, 0xb6, 0xdb }, { 0xb6, 0xdb, 0x6d }, { 0xdb, 0x6d, 0xb6 }<br />

};<br />

if (fstat(fd, &st) = = -1) return -1;<br />

if (!st.st_size) return 0;<br />

for (pass = 0; pass < 4; pass++)<br />

if (random_pass(fd, st.st_size) = = -1) return -1;<br />

memset(buf, single_pats[5], sizeof(buf));<br />

if (pattern_pass(fd, buf, sizeof(buf), st.st_size) = = -1) return -1;<br />

memset(buf, single_pats[10], sizeof(buf));<br />

if (pattern_pass(fd, buf, sizeof(buf), st.st_size) = = -1) return -1;<br />

patternsz = sizeof(triple_pats[0]);<br />

for (pass = 0; pass < 3; pass++) {<br />

pattern = triple_pats[pass];<br />

count = sizeof(buf) / patternsz;<br />

for (i = 0; i < count; i++)<br />

memcpy(buf + (i * patternsz), pattern, patternsz);<br />

if (pattern_pass(fd, buf, patternsz * count, st.st_size) = = -1) return -1;<br />

}<br />

for (pass = 0; pass < sizeof(single_pats); pass++) {<br />

memset(buf, single_pats[pass], sizeof(buf));<br />

50 | Chapter 2: Access Control<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!