]> Dogcows Code - chaz/tar/blobdiff - src/extract.c
(first_mangle, mangled_num): Remove.
[chaz/tar] / src / extract.c
index e761da5c884fbd8bfd90382f226092ad25c775d3..aa8f93c13670214cef2f9979df3d0d51b639e447 100644 (file)
@@ -231,7 +231,7 @@ make_directories (char *file_name)
   int status;
 
   for (cursor = strchr (file_name, '/');
-       cursor != NULL;
+       cursor;
        cursor = strchr (cursor + 1, '/'))
     {
       /* Avoid mkdir of empty string, if leading or double '/'.  */
@@ -344,7 +344,7 @@ extract_sparse_file (int fd, off_t *sizeleft, off_t totalsize, char *name)
   while (*sizeleft > 0)
     {
       union block *data_block = find_next_block ();
-      if (data_block == NULL)
+      if (! data_block)
        {
          ERROR ((0, 0, _("Unexpected EOF on archive file")));
          return;
@@ -367,6 +367,11 @@ extract_sparse_file (int fd, off_t *sizeleft, off_t totalsize, char *name)
          *sizeleft -= count;
          set_next_block_after (data_block);
          data_block = find_next_block ();
+         if (! data_block)
+           {
+             ERROR ((0, 0, _("Unexpected EOF on archive file")));
+             return;
+           }
        }
 
       count = full_write (fd, data_block->buffer, written);
@@ -483,7 +488,7 @@ extract_archive (void)
 
     case GNUTYPE_SPARSE:
       sp_array_size = 10;
-      sparsearray = (struct sp_array *)
+      sparsearray =
        xmalloc (sp_array_size * sizeof (struct sp_array));
 
       for (counter = 0; counter < SPARSES_IN_OLDGNU_HEADER; counter++)
@@ -507,6 +512,11 @@ extract_archive (void)
          while (1)
            {
              exhdr = find_next_block ();
+             if (! exhdr)
+               {
+                 ERROR ((0, 0, _("Unexpected EOF on archive file")));
+                 return;
+               }
              for (counter = 0; counter < SPARSES_IN_SPARSE_HEADER; counter++)
                {
                  if (counter + ind > sp_array_size - 1)
@@ -515,13 +525,11 @@ extract_archive (void)
                         room.  */
 
                      sp_array_size *= 2;
-                     sparsearray = (struct sp_array *)
+                     sparsearray =
                        xrealloc (sparsearray,
-                                 sp_array_size * (sizeof (struct sp_array)));
+                                 sp_array_size * sizeof (struct sp_array));
                    }
-                 /* Compare to 0, or use !(int)..., for Pyramid's dumb
-                    compiler.  */
-                 if (exhdr->sparse_header.sp[counter].numbytes == 0)
+                 if (exhdr->sparse_header.sp[counter].numbytes[0] == 0)
                    break;
                  sparsearray[counter + ind].offset =
                    OFF_FROM_CHARS (exhdr->sparse_header.sp[counter].offset);
@@ -597,7 +605,7 @@ extract_archive (void)
 #else /* not O_CTG */
       if (typeflag == CONTTYPE)
        {
-         static int conttype_diagnosed = 0;
+         static int conttype_diagnosed;
 
          if (!conttype_diagnosed)
            {
@@ -637,7 +645,7 @@ extract_archive (void)
             REAL interesting unless we do this.  */
 
          name_length_bis = strlen (CURRENT_FILE_NAME) + 1;
-         name = (char *) xmalloc (name_length_bis);
+         name = xmalloc (name_length_bis);
          memcpy (name, CURRENT_FILE_NAME, name_length_bis);
          size = current_stat.st_size;
          extract_sparse_file (fd, &size, current_stat.st_size, name);
@@ -659,7 +667,7 @@ extract_archive (void)
               worked.  */
 
            data_block = find_next_block ();
-           if (data_block == NULL)
+           if (! data_block)
              {
                ERROR ((0, 0, _("Unexpected EOF on archive file")));
                break;          /* FIXME: What happens, then?  */
@@ -693,7 +701,7 @@ extract_archive (void)
          }
 
       if (multi_volume_option)
-       assign_string (&save_name, NULL);
+       assign_string (&save_name, 0);
 
       /* If writing to stdout, don't try to do anything to the filename;
         it doesn't exist, or we don't want to touch it anyway.  */
@@ -745,7 +753,7 @@ extract_archive (void)
 
 #else
       {
-       static int warned_once = 0;
+       static int warned_once;
 
        if (!warned_once)
          {
@@ -938,7 +946,7 @@ extract_archive (void)
        }
 
 #if !MSDOS
-      /* MSDOS does not associate timestamps with directories.   In this
+      /* MSDOS does not associate time stamps with directories.   In this
         case, no need to try delaying their restoration.  */
 
       if (touch_option)
@@ -951,8 +959,7 @@ extract_archive (void)
 
       else
        {
-         data = ((struct delayed_set_stat *)
-                     xmalloc (sizeof (struct delayed_set_stat)));
+         data = xmalloc (sizeof (struct delayed_set_stat));
          data->file_name = xstrdup (CURRENT_FILE_NAME);
          data->stat_info = current_stat;
          data->next = delayed_set_stat_head;
@@ -1006,7 +1013,7 @@ apply_delayed_set_stat (void)
 {
   struct delayed_set_stat *data;
 
-  while (delayed_set_stat_head != NULL)
+  while (delayed_set_stat_head)
     {
       data = delayed_set_stat_head;
       delayed_set_stat_head = delayed_set_stat_head->next;
This page took 0.026461 seconds and 4 git commands to generate.