No dirnames more likely means 'no files', not old-style filenames.
authorKristian Høgsberg <krh@redhat.com>
Sat, 5 Apr 2008 05:02:12 +0000 (01:02 -0400)
committerKristian Høgsberg <krh@redhat.com>
Sat, 5 Apr 2008 05:02:12 +0000 (01:02 -0400)
rpm.c

diff --git a/rpm.c b/rpm.c
index 966d1fe..751253f 100644 (file)
--- a/rpm.c
+++ b/rpm.c
@@ -188,15 +188,19 @@ razor_rpm_open(const char *filename)
 
        /* Look up dir names now so we can index them directly. */
        name = razor_rpm_get_indirect(rpm, RPMTAG_DIRNAMES, &count);
-       if (name == NULL) {
-               fprintf(stderr, "old filename style not handled\n");
-               return NULL;
-       }
-
-       rpm->dirs = calloc(count, sizeof *rpm->dirs);
-       for (i = 0; i < count; i++) {
-               rpm->dirs[i] = name;
-               name += strlen(name) + 1;
+       if (name) {
+               rpm->dirs = calloc(count, sizeof *rpm->dirs);
+               for (i = 0; i < count; i++) {
+                       rpm->dirs[i] = name;
+                       name += strlen(name) + 1;
+               }
+       } else {
+               name = razor_rpm_get_indirect(rpm, RPMTAG_OLDFILENAMES,
+                                             &count);
+               if (name) {
+                       fprintf(stderr, "old filenames not supported\n");
+                       return NULL;
+               }
        }
 
        return rpm;