]> Dogcows Code - chaz/tar/commitdiff
(dump_file): Relativize link names before dumping.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 29 Aug 2001 21:37:27 +0000 (21:37 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 29 Aug 2001 21:37:27 +0000 (21:37 +0000)
This fixes a bug reported by Jose Pedro Oliveira.
(dump_file): Use offsetof when computing sizes for
struct hack; this avoids wasted space in some cases.

src/create.c

index 98b16394cbc1807cecbfad76e3525079635e660d..b3de6a87d33a42c8ca9bc5243cd8c162bb9c6bcc 100644 (file)
@@ -1139,7 +1139,8 @@ dump_file (char *p, int top_level, dev_t parent_device)
       if (1 < current_stat.st_nlink)
        {
          static Hash_table *link_table;
-         struct link *lp = xmalloc (sizeof *lp + strlen (p));
+         struct link *lp = xmalloc (offsetof (struct link, name)
+                                    + strlen (p) + 1);
          struct link *dup;
          lp->ino = current_stat.st_ino;
          lp->dev = current_stat.st_dev;
@@ -1154,7 +1155,7 @@ dump_file (char *p, int top_level, dev_t parent_device)
          if (dup != lp)
            {
              /* We found a link.  */
-             char const *link_name = dup->name;
+             char const *link_name = relativize (dup->name);
 
              free (lp);
 
This page took 0.030058 seconds and 4 git commands to generate.