(ar_scan) [AIAMAG]: Check for zero MEMBER_OFFSET, indicating a valid, but
authorRoland McGrath <roland@redhat.com>
Thu, 10 Aug 1995 23:09:46 +0000 (23:09 +0000)
committerRoland McGrath <roland@redhat.com>
Thu, 10 Aug 1995 23:09:46 +0000 (23:09 +0000)
empty, archive.

arscan.c

index a3dce83c329e237dbda29424a270770fb2448acb..e63659e5e649988f8e4b4d90121a978e5e88516e 100644 (file)
--- a/arscan.c
+++ b/arscan.c
@@ -1,5 +1,5 @@
 /* Library function for scanning an archive file.
-   Copyright (C) 1987, 89, 91, 92, 93, 94 Free Software Foundation, Inc.
+   Copyright (C) 1987, 89, 91, 92, 93, 94, 95 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -144,6 +144,13 @@ ar_scan (archive, function, arg)
 
     sscanf (fl_header.fl_fstmoff, "%12ld", &member_offset);
     sscanf (fl_header.fl_lstmoff, "%12ld", &last_member_offset);
+
+    if (member_offset == 0)
+      {
+       /* Empty archive.  */
+       close (desc);
+       return 0;
+      }
 #else
 #ifndef        M_XENIX
     register long int member_offset = sizeof (int);