~ubuntu-branches/ubuntu/precise/rpm/precise-proposed

« back to all changes in this revision

Viewing changes to tools/debugedit.c

  • Committer: Bazaar Package Importer
  • Author(s): Anibal Monsalve Salazar
  • Date: 2008-05-11 11:45:40 UTC
  • mfrom: (1.1.4 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080511114540-688jw62nkud6e3nl
Tags: 4.4.2.3-1
* New upstream 
* Fix "rpm --root uses wrong db-dir". Closes: #359161
* Create /var/lib/rpm, Closes: #398046, #451441, #471473

Show diffs side-by-side

added added

removed removed

Lines of Context:
560
560
        }
561
561
      else
562
562
        {
563
 
          memcpy (s, comp_dir, comp_dir_len);
564
 
          s[comp_dir_len] = '/';
565
 
          memcpy (s + comp_dir_len + 1, dirt[value], dir_len);
566
 
          s[comp_dir_len + 1 + dir_len] = '/';
567
 
          memcpy (s + comp_dir_len + 1 + dir_len + 1, file, file_len + 1);
 
563
          char *p = s;
 
564
          if (comp_dir_len != 0)
 
565
            {
 
566
              memcpy (s, comp_dir, comp_dir_len);
 
567
              s[comp_dir_len] = '/';
 
568
              p += comp_dir_len + 1;
 
569
            }
 
570
          memcpy (p, dirt[value], dir_len);
 
571
          p[dir_len] = '/';
 
572
          memcpy (p + dir_len + 1, file, file_len + 1);
568
573
        }
569
574
      canonicalize_path (s, s);
570
 
      if (base_dir == NULL ||
571
 
          has_prefix (s, base_dir))
 
575
      if (list_file_fd != -1)
572
576
        {
573
 
          char *p;
574
 
          size_t size;
575
 
          ssize_t ret;
576
 
          if (base_dir)
 
577
          char *p = NULL;
 
578
          if (base_dir == NULL)
 
579
            p = s;
 
580
          else if (has_prefix (s, base_dir))
577
581
            p = s + strlen (base_dir);
578
 
          else
579
 
            p = s;
580
 
          
581
 
          if (list_file_fd != -1)
 
582
          else if (has_prefix (s, dest_dir))
 
583
            p = s + strlen (dest_dir);
 
584
 
 
585
          if (p)
582
586
            {
583
 
              size = strlen (p) + 1;
 
587
              size_t size = strlen (p) + 1;
584
588
              while (size > 0)
585
589
                {
586
 
                  ret = write (list_file_fd, p, size);
 
590
                  ssize_t ret = write (list_file_fd, p, size);
587
591
                  if (ret == -1)
588
592
                    break;
589
593
                  size -= ret;
823
827
 
824
828
          switch (form)
825
829
            {
 
830
            case DW_FORM_ref_addr: /* ptr_size in DWARF 2, offset in DWARF 3 */
826
831
            case DW_FORM_addr:
827
832
              ptr += ptr_size;
828
833
              break;
848
853
            case DW_FORM_udata:
849
854
              read_uleb128 (ptr);
850
855
              break;
851
 
            case DW_FORM_ref_addr:
852
856
            case DW_FORM_strp:
853
857
              ptr += 4;
854
858
              break;
1329
1333
    }
1330
1334
 
1331
1335
  /* Clear the old bits so they do not affect the new hash.  */
1332
 
  memset ((char *) build_id->d_buf + build_id_offset, 0, build_id_offset);
 
1336
  memset ((char *) build_id->d_buf + build_id_offset, 0, build_id_size);
1333
1337
 
1334
1338
  hashFunctionContextInit (&ctx, hf);
1335
1339