version 1.6, 2003/08/26 09:58:43 |
version 1.6.4.1, 2004/08/19 04:13:26 |
|
|
{ |
{ |
struct stat st; |
struct stat st; |
char *banner = NULL; |
char *banner = NULL; |
off_t len, n; |
size_t len, n; |
int fd; |
int fd; |
|
|
if ((fd = open(options.banner, O_RDONLY)) == -1) |
if ((fd = open(options.banner, O_RDONLY)) == -1) |
|
|
close(fd); |
close(fd); |
return (NULL); |
return (NULL); |
} |
} |
len = st.st_size; |
if (st.st_size > 1*1024*1024) { |
|
close(fd); |
|
return (NULL); |
|
} |
|
|
|
len = (size_t)st.st_size; /* truncate */ |
banner = xmalloc(len + 1); |
banner = xmalloc(len + 1); |
n = atomicio(read, fd, banner, len); |
n = atomicio(read, fd, banner, len); |
close(fd); |
close(fd); |