From: Tim Kientzle Date: Sat, 15 Jan 2011 04:13:39 +0000 (-0500) Subject: Issue 128: Don't initialize a static vtable more than once. X-Git-Tag: v3.0.0a~763 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef041bc49f921606f49ea1cb28733f067be2b51d;p=thirdparty%2Flibarchive.git Issue 128: Don't initialize a static vtable more than once. SVN-Revision: 2887 --- diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c index f15d10d27..53b457765 100644 --- a/libarchive/archive_read.c +++ b/libarchive/archive_read.c @@ -90,6 +90,7 @@ archive_read_vtable(void) av.archive_read_next_header2 = _archive_read_next_header2; av.archive_free = _archive_read_free; av.archive_close = _archive_read_close; + inited = 1; } return (&av); } diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c index ef3bf55d0..72141bc8e 100644 --- a/libarchive/archive_read_disk_posix.c +++ b/libarchive/archive_read_disk_posix.c @@ -312,6 +312,7 @@ archive_read_disk_vtable(void) av.archive_close = _archive_read_close; av.archive_read_data_block = _archive_read_data_block; av.archive_read_next_header2 = _archive_read_next_header2; + inited = 1; } return (&av); } diff --git a/libarchive/archive_read_disk_windows.c b/libarchive/archive_read_disk_windows.c index f8fe52f75..e7617439d 100644 --- a/libarchive/archive_read_disk_windows.c +++ b/libarchive/archive_read_disk_windows.c @@ -312,6 +312,7 @@ archive_read_disk_vtable(void) av.archive_close = _archive_read_close; av.archive_read_data_block = _archive_read_data_block; av.archive_read_next_header2 = _archive_read_next_header2; + inited = 1; } return (&av); } diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c index 4a1c9ea68..6072516a2 100644 --- a/libarchive/archive_write.c +++ b/libarchive/archive_write.c @@ -95,6 +95,7 @@ archive_write_vtable(void) av.archive_write_header = _archive_write_header; av.archive_write_finish_entry = _archive_write_finish_entry; av.archive_write_data = _archive_write_data; + inited = 1; } return (&av); } diff --git a/libarchive/archive_write_disk.c b/libarchive/archive_write_disk.c index 93b56c039..8b974eab5 100644 --- a/libarchive/archive_write_disk.c +++ b/libarchive/archive_write_disk.c @@ -343,6 +343,7 @@ archive_write_disk_vtable(void) = _archive_write_disk_finish_entry; av.archive_write_data = _archive_write_disk_data; av.archive_write_data_block = _archive_write_disk_data_block; + inited = 1; } return (&av); }