@@ -0,0 +1,39 @@
+archival/libunarchive/get_header_tar.c: In function 'get_header_tar':
+archival/libunarchive/get_header_tar.c:140: warning: array subscript is above array bounds
+archival/libunarchive/get_header_tar.c:155: warning: array subscript is above array bounds
+archival/libunarchive/get_header_tar.c:158: warning: array subscript is above array bounds
+make[1]: *** [archival/libunarchive/get_header_tar.o] Error 1
+
+---
+ archival/libunarchive/get_header_tar.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/archival/libunarchive/get_header_tar.c
++++ b/archival/libunarchive/get_header_tar.c
+@@ -162,8 +162,8 @@ char get_header_tar(archive_handle_t *ar
+ }
+ file_header->link_target = NULL;
+ if (!linkname && parse_names && tar.linkname[0]) {
+- /* we trash magic[0] here, it's ok */
+- tar.linkname[sizeof(tar.linkname)] = '\0';
++ /* we trash magic[0] here to terminate tar.linkname, it's ok */
++ tar.magic[0] = '\0';
+ file_header->link_target = xstrdup(tar.linkname);
+ /* FIXME: what if we have non-link object with link_target? */
+ /* Will link_target be free()ed? */
+@@ -177,11 +177,11 @@ char get_header_tar(archive_handle_t *ar
+
+ file_header->name = NULL;
+ if (!longname && parse_names) {
+- /* we trash mode[0] here, it's ok */
+- tar.name[sizeof(tar.name)] = '\0';
++ /* we trash mode[0] here to terminate tar.name, it's ok */
++ tar.mode[0] = '\0';
+ if (tar.prefix[0]) {
+- /* and padding[0] */
+- tar.prefix[sizeof(tar.prefix)] = '\0';
++ /* and padding[0] to terminate tar.prefix */
++ tar.padding[0] = '\0';
+ file_header->name = concat_path_file(tar.prefix, tar.name);
+ } else
+ file_header->name = xstrdup(tar.name);
|