]> Dogcows Code - chaz/tar/blobdiff - src/list.c
tar: if (p) free (p); -> free (p);
[chaz/tar] / src / list.c
index e1e06caa9e25ef3e173d7c30504beb2bfcc69623..cf2de096d00b9d3ea29fe3ef7a1c88e22ce02462 100644 (file)
@@ -116,13 +116,13 @@ transform_member_name (char **pinput, int type)
   return transform_name_fp (pinput, type, decode_xform, &type);
 }
 
-static void
+void
 transform_stat_info (int typeflag, struct tar_stat_info *stat_info)
 {
   if (typeflag == GNUTYPE_VOLHDR)
     /* Name transformations don't apply to volume headers. */
     return;
-  
+
   transform_member_name (&stat_info->file_name, XFORM_REGFILE);
   switch (typeflag)
     {
@@ -433,15 +433,13 @@ read_header (union block **return_block, struct tar_stat_info *info,
 
              if (header->header.typeflag == GNUTYPE_LONGNAME)
                {
-                 if (next_long_name)
-                   free (next_long_name);
+                 free (next_long_name);
                  next_long_name = header_copy;
                  next_long_name_blocks = size / BLOCKSIZE;
                }
              else
                {
-                 if (next_long_link)
-                   free (next_long_link);
+                 free (next_long_link);
                  next_long_link = header_copy;
                  next_long_link_blocks = size / BLOCKSIZE;
                }
@@ -500,8 +498,7 @@ read_header (union block **return_block, struct tar_stat_info *info,
          struct posix_header const *h = &header->header;
          char namebuf[sizeof h->prefix + 1 + NAME_FIELD_SIZE + 1];
 
-         if (recent_long_name)
-           free (recent_long_name);
+         free (recent_long_name);
 
          if (next_long_name)
            {
@@ -532,8 +529,7 @@ read_header (union block **return_block, struct tar_stat_info *info,
          assign_string (&info->file_name, name);
          info->had_trailing_slash = strip_trailing_slashes (info->file_name);
 
-         if (recent_long_link)
-           free (recent_long_link);
+         free (recent_long_link);
 
          if (next_long_link)
            {
@@ -592,7 +588,9 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
       else
        format = USTAR_FORMAT;
     }
-  else if (strcmp (header->header.magic, OLDGNU_MAGIC) == 0)
+  else if (strcmp (header->buffer + offsetof (struct posix_header, magic),
+                  OLDGNU_MAGIC)
+          == 0)
     format = hbits ? OLDGNU_FORMAT : GNU_FORMAT;
   else
     format = V7_FORMAT;
This page took 0.021411 seconds and 4 git commands to generate.