diff options
author | kientzle <kientzle@FreeBSD.org> | 2008-02-19 06:10:48 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2008-02-19 06:10:48 +0000 |
commit | fa2b3c3128ef280a166cb83f6f709fd75993e13c (patch) | |
tree | 92afef9d76e78df9fb637ce09bff271ef620755e /lib/libarchive | |
parent | efdcbf021b88988e96988ec6094912262831f32d (diff) | |
download | FreeBSD-src-fa2b3c3128ef280a166cb83f6f709fd75993e13c.zip FreeBSD-src-fa2b3c3128ef280a166cb83f6f709fd75993e13c.tar.gz |
Include O_BINARY in open() calls on platforms that support it.
Diffstat (limited to 'lib/libarchive')
-rw-r--r-- | lib/libarchive/archive_read_open_filename.c | 6 | ||||
-rw-r--r-- | lib/libarchive/archive_read_support_format_mtree.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/lib/libarchive/archive_read_open_filename.c b/lib/libarchive/archive_read_open_filename.c index fa3563a..be3cc9b 100644 --- a/lib/libarchive/archive_read_open_filename.c +++ b/lib/libarchive/archive_read_open_filename.c @@ -47,6 +47,10 @@ __FBSDID("$FreeBSD$"); #include "archive.h" +#ifndef O_BINARY +#define O_BINARY 0 +#endif + struct read_file_data { int fd; size_t block_size; @@ -113,7 +117,7 @@ file_open(struct archive *a, void *client_data) return (ARCHIVE_FATAL); } if (mine->filename[0] != '\0') - mine->fd = open(mine->filename, O_RDONLY); + mine->fd = open(mine->filename, O_RDONLY | O_BINARY); else mine->fd = 0; /* Fake "open" for stdin. */ if (mine->fd < 0) { diff --git a/lib/libarchive/archive_read_support_format_mtree.c b/lib/libarchive/archive_read_support_format_mtree.c index e6ac99f..d7afb8c 100644 --- a/lib/libarchive/archive_read_support_format_mtree.c +++ b/lib/libarchive/archive_read_support_format_mtree.c @@ -50,6 +50,10 @@ __FBSDID("$FreeBSD$"); #include "archive_read_private.h" #include "archive_string.h" +#ifndef O_BINARY +#define O_BINARY 0 +#endif + struct mtree_entry { struct mtree_entry *next; char *name; @@ -371,7 +375,8 @@ read_header(struct archive_read *a, struct archive_entry *entry) * the contents file on disk.) */ if (archive_strlen(&mtree->contents_name) > 0) { - mtree->fd = open(mtree->contents_name.s, O_RDONLY); + mtree->fd = open(mtree->contents_name.s, + O_RDONLY | O_BINARY); if (mtree->fd < 0) { archive_set_error(&a->archive, errno, "Can't open content=\"%s\"", @@ -380,7 +385,8 @@ read_header(struct archive_read *a, struct archive_entry *entry) } } else { /* If the specified path opens, use it. */ - mtree->fd = open(mtree->current_dir.s, O_RDONLY); + mtree->fd = open(mtree->current_dir.s, + O_RDONLY | O_BINARY); /* But don't fail if it's not there. */ } |