5425 ld_unwind_populate_hdr likely misaccounts for 'P'
617 */
618 for (cieaugndx = 0; cieaugstr[cieaugndx];
619 cieaugndx++) {
620 /* BEGIN CSTYLED */
621 switch (cieaugstr[cieaugndx]) {
622 case 'z':
623 /* size */
624 (void) uleb_extract(&data[off],
625 &ndx);
626 break;
627 case 'P':
628 /* personality */
629 ciePflag = data[off + ndx];
630 ndx++;
631 /*
632 * Just need to extract the
633 * value to move on to the next
634 * field.
635 */
636 (void) dwarf_ehe_extract(
637 &data[off + ndx],
638 &ndx, ciePflag,
639 ofl->ofl_dehdr->e_ident, B_FALSE,
640 shdr->sh_addr, off + ndx, 0);
641 break;
642 case 'R':
643 /* code encoding */
644 cieRflag = data[off + ndx];
645 ndx++;
646 break;
647 case 'L':
648 /* lsda encoding */
649 ndx++;
650 break;
651 }
652 /* END CSTYLED */
653 }
654 } else {
655 uint_t bintabndx;
656 uint64_t initloc;
657 uint64_t fdeaddr;
|
617 */
618 for (cieaugndx = 0; cieaugstr[cieaugndx];
619 cieaugndx++) {
620 /* BEGIN CSTYLED */
621 switch (cieaugstr[cieaugndx]) {
622 case 'z':
623 /* size */
624 (void) uleb_extract(&data[off],
625 &ndx);
626 break;
627 case 'P':
628 /* personality */
629 ciePflag = data[off + ndx];
630 ndx++;
631 /*
632 * Just need to extract the
633 * value to move on to the next
634 * field.
635 */
636 (void) dwarf_ehe_extract(
637 &data[off],
638 &ndx, ciePflag,
639 ofl->ofl_dehdr->e_ident, B_FALSE,
640 shdr->sh_addr, off + ndx, 0);
641 break;
642 case 'R':
643 /* code encoding */
644 cieRflag = data[off + ndx];
645 ndx++;
646 break;
647 case 'L':
648 /* lsda encoding */
649 ndx++;
650 break;
651 }
652 /* END CSTYLED */
653 }
654 } else {
655 uint_t bintabndx;
656 uint64_t initloc;
657 uint64_t fdeaddr;
|