From aa4a8c2a2a67545e90c877162c53cc9de42dc8b4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 24 Apr 2018 16:31:27 +0100 Subject: [PATCH] Fix an illegal memory access when copying a PE format file with corrupt debug information. PR 23110 * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Check for a negative PE_DEBUG_DATA size before iterating over the debug data. Upstream-Status: Backport Affects: <= 2.30 CVE: CVE-2018-10534 Signed-off-by: Armin Kuster --- bfd/ChangeLog | 6 + bfd/peXXigen.c | 9 + bfd/po/bfd.pot | 5631 ++++++++++++++++++++++++++------------------------------ 3 files changed, 2662 insertions(+), 2984 deletions(-) Index: git/bfd/peXXigen.c =================================================================== --- git.orig/bfd/peXXigen.c +++ git/bfd/peXXigen.c @@ -2991,6 +2991,15 @@ _bfd_XX_bfd_copy_private_bfd_data_common bfd_get_section_size (section) - (addr - section->vma)); return FALSE; } + /* PR 23110. */ + else if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size < 0) + { + /* xgettext:c-format */ + _bfd_error_handler + (_("%pB: Data Directory size (%#lx) is negative"), + obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size); + return FALSE; + } for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size / sizeof (struct external_IMAGE_DEBUG_DIRECTORY); i++) Index: git/bfd/po/bfd.pot =================================================================== --- git.orig/bfd/po/bfd.pot +++ git/bfd/po/bfd.pot @@ -6119,1961 +6119,1932 @@ msgstr "" #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 +#: vms-alpha.c:2116 vms-alpha.c:2147 vms-alpha.c:2238 vms-alpha.c:2396 #, c-format msgid "%s: not supported" msgstr "" -#: vms-alpha.c:2121 +#: vms-alpha.c:2122 #, c-format msgid "%s: not implemented" msgstr "" -#: vms-alpha.c:2379 +#: vms-alpha.c:2380 #, c-format msgid "invalid use of %s with contexts" msgstr "" -#: vms-alpha.c:2413 +#: vms-alpha.c:2414 #, c-format msgid "reserved cmd %d" msgstr "" -#: vms-alpha.c:2497 -msgid "Corrupt EEOM record - size is too small" +#: vms-alpha.c:2498 +msgid "corrupt EEOM record - size is too small" msgstr "" -#: vms-alpha.c:2506 -msgid "Object module NOT error-free !\n" +#: vms-alpha.c:2507 +msgid "object module not error-free !" msgstr "" -#: vms-alpha.c:3830 +#: vms-alpha.c:3831 #, c-format -msgid "SEC_RELOC with no relocs in section %A" +msgid "SEC_RELOC with no relocs in section %pA" msgstr "" -#: vms-alpha.c:3882 vms-alpha.c:4095 +#: vms-alpha.c:3883 vms-alpha.c:4096 #, c-format -msgid "Size error in section %A" +msgid "size error in section %pA" msgstr "" -#: vms-alpha.c:4041 -msgid "Spurious ALPHA_R_BSR reloc" +#: vms-alpha.c:4042 +msgid "spurious ALPHA_R_BSR reloc" msgstr "" -#: vms-alpha.c:4082 +#: vms-alpha.c:4083 #, c-format -msgid "Unhandled relocation %s" +msgid "unhandled relocation %s" msgstr "" -#: vms-alpha.c:4375 +#: vms-alpha.c:4376 #, c-format msgid "unknown source command %d" msgstr "" -#: vms-alpha.c:4436 -msgid "DST__K_SET_LINUM_INCR not implemented" -msgstr "" - -#: vms-alpha.c:4442 -msgid "DST__K_SET_LINUM_INCR_W not implemented" -msgstr "" - -#: vms-alpha.c:4448 -msgid "DST__K_RESET_LINUM_INCR not implemented" -msgstr "" - -#: vms-alpha.c:4454 -msgid "DST__K_BEG_STMT_MODE not implemented" -msgstr "" - -#: vms-alpha.c:4460 -msgid "DST__K_END_STMT_MODE not implemented" -msgstr "" - -#: vms-alpha.c:4487 -msgid "DST__K_SET_PC not implemented" -msgstr "" - -#: vms-alpha.c:4493 -msgid "DST__K_SET_PC_W not implemented" -msgstr "" - -#: vms-alpha.c:4499 -msgid "DST__K_SET_PC_L not implemented" -msgstr "" - -#: vms-alpha.c:4505 -msgid "DST__K_SET_STMTNUM not implemented" +#: vms-alpha.c:4437 vms-alpha.c:4443 vms-alpha.c:4449 vms-alpha.c:4455 +#: vms-alpha.c:4461 vms-alpha.c:4488 vms-alpha.c:4494 vms-alpha.c:4500 +#: vms-alpha.c:4506 +#, c-format +msgid "%s not implemented" msgstr "" -#: vms-alpha.c:4548 +#: vms-alpha.c:4549 #, c-format msgid "unknown line command %d" msgstr "" -#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 -#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 +#: vms-alpha.c:5009 vms-alpha.c:5027 vms-alpha.c:5042 vms-alpha.c:5058 +#: vms-alpha.c:5071 vms-alpha.c:5083 vms-alpha.c:5096 #, c-format -msgid "Unknown reloc %s + %s" +msgid "unknown reloc %s + %s" msgstr "" -#: vms-alpha.c:5150 +#: vms-alpha.c:5151 #, c-format -msgid "Unknown reloc %s" +msgid "unknown reloc %s" msgstr "" -#: vms-alpha.c:5163 -msgid "Invalid section index in ETIR" +#: vms-alpha.c:5164 +msgid "invalid section index in ETIR" msgstr "" -#: vms-alpha.c:5172 -msgid "Relocation for non-REL psect" +#: vms-alpha.c:5173 +msgid "relocation for non-REL psect" msgstr "" -#: vms-alpha.c:5219 +#: vms-alpha.c:5220 #, c-format -msgid "Unknown symbol in command %s" +msgid "unknown symbol in command %s" msgstr "" -#: vms-alpha.c:5629 +#: vms-alpha.c:5630 #, c-format msgid "reloc (%d) is *UNKNOWN*" msgstr "" -#: vms-alpha.c:5745 +#: vms-alpha.c:5746 #, c-format msgid " EMH %u (len=%u): " msgstr "" -#: vms-alpha.c:5750 +#: vms-alpha.c:5751 #, c-format msgid " Error: The length is less than the length of an EMH record\n" msgstr "" -#: vms-alpha.c:5767 +#: vms-alpha.c:5768 #, c-format msgid "" " Error: The record length is less than the size of an EMH_MHD record\n" msgstr "" -#: vms-alpha.c:5770 +#: vms-alpha.c:5771 #, c-format msgid "Module header\n" msgstr "" -#: vms-alpha.c:5771 +#: vms-alpha.c:5772 #, c-format msgid " structure level: %u\n" msgstr "" -#: vms-alpha.c:5772 +#: vms-alpha.c:5773 #, c-format msgid " max record size: %u\n" msgstr "" -#: vms-alpha.c:5778 +#: vms-alpha.c:5779 #, c-format msgid " Error: The module name is missing\n" msgstr "" -#: vms-alpha.c:5784 +#: vms-alpha.c:5785 #, c-format msgid " Error: The module name is too long\n" msgstr "" -#: vms-alpha.c:5787 +#: vms-alpha.c:5788 #, c-format msgid " module name : %.*s\n" msgstr "" -#: vms-alpha.c:5791 +#: vms-alpha.c:5792 #, c-format msgid " Error: The module version is missing\n" msgstr "" -#: vms-alpha.c:5797 +#: vms-alpha.c:5798 #, c-format msgid " Error: The module version is too long\n" msgstr "" -#: vms-alpha.c:5800 +#: vms-alpha.c:5801 #, c-format msgid " module version : %.*s\n" msgstr "" -#: vms-alpha.c:5803 +#: vms-alpha.c:5804 #, c-format msgid " Error: The compile date is truncated\n" msgstr "" -#: vms-alpha.c:5805 +#: vms-alpha.c:5806 #, c-format msgid " compile date : %.17s\n" msgstr "" -#: vms-alpha.c:5810 +#: vms-alpha.c:5811 #, c-format msgid "Language Processor Name\n" msgstr "" -#: vms-alpha.c:5811 +#: vms-alpha.c:5812 #, c-format msgid " language name: %.*s\n" msgstr "" -#: vms-alpha.c:5815 +#: vms-alpha.c:5816 #, c-format msgid "Source Files Header\n" msgstr "" -#: vms-alpha.c:5816 +#: vms-alpha.c:5817 #, c-format msgid " file: %.*s\n" msgstr "" -#: vms-alpha.c:5820 +#: vms-alpha.c:5821 #, c-format msgid "Title Text Header\n" msgstr "" -#: vms-alpha.c:5821 +#: vms-alpha.c:5822 #, c-format msgid " title: %.*s\n" msgstr "" -#: vms-alpha.c:5825 +#: vms-alpha.c:5826 #, c-format msgid "Copyright Header\n" msgstr "" -#: vms-alpha.c:5826 +#: vms-alpha.c:5827 #, c-format msgid " copyright: %.*s\n" msgstr "" -#: vms-alpha.c:5830 +#: vms-alpha.c:5831 #, c-format msgid "unhandled emh subtype %u\n" msgstr "" -#: vms-alpha.c:5840 +#: vms-alpha.c:5841 #, c-format msgid " EEOM (len=%u):\n" msgstr "" -#: vms-alpha.c:5845 +#: vms-alpha.c:5846 #, c-format msgid " Error: The length is less than the length of an EEOM record\n" msgstr "" -#: vms-alpha.c:5849 +#: vms-alpha.c:5850 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr "" -#: vms-alpha.c:5851 +#: vms-alpha.c:5852 #, c-format msgid " completion code: %u\n" msgstr "" -#: vms-alpha.c:5855 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr "" -#: vms-alpha.c:5856 +#: vms-alpha.c:5857 #, c-format msgid " transfer addr psect: %u\n" msgstr "" -#: vms-alpha.c:5858 +#: vms-alpha.c:5859 #, c-format msgid " transfer address : 0x%08x\n" msgstr "" -#: vms-alpha.c:5867 +#: vms-alpha.c:5868 msgid " WEAK" msgstr "" -#: vms-alpha.c:5869 +#: vms-alpha.c:5870 msgid " DEF" msgstr "" -#: vms-alpha.c:5871 +#: vms-alpha.c:5872 msgid " UNI" msgstr "" -#: vms-alpha.c:5873 vms-alpha.c:5894 +#: vms-alpha.c:5874 vms-alpha.c:5895 msgid " REL" msgstr "" -#: vms-alpha.c:5875 +#: vms-alpha.c:5876 msgid " COMM" msgstr "" -#: vms-alpha.c:5877 +#: vms-alpha.c:5878 msgid " VECEP" msgstr "" -#: vms-alpha.c:5879 +#: vms-alpha.c:5880 msgid " NORM" msgstr "" -#: vms-alpha.c:5881 +#: vms-alpha.c:5882 msgid " QVAL" msgstr "" -#: vms-alpha.c:5888 +#: vms-alpha.c:5889 msgid " PIC" msgstr "" -#: vms-alpha.c:5890 +#: vms-alpha.c:5891 msgid " LIB" msgstr "" -#: vms-alpha.c:5892 +#: vms-alpha.c:5893 msgid " OVR" msgstr "" -#: vms-alpha.c:5896 +#: vms-alpha.c:5897 msgid " GBL" msgstr "" -#: vms-alpha.c:5898 +#: vms-alpha.c:5899 msgid " SHR" msgstr "" -#: vms-alpha.c:5900 +#: vms-alpha.c:5901 msgid " EXE" msgstr "" -#: vms-alpha.c:5902 +#: vms-alpha.c:5903 msgid " RD" msgstr "" -#: vms-alpha.c:5904 +#: vms-alpha.c:5905 msgid " WRT" msgstr "" -#: vms-alpha.c:5906 +#: vms-alpha.c:5907 msgid " VEC" msgstr "" -#: vms-alpha.c:5908 +#: vms-alpha.c:5909 msgid " NOMOD" msgstr "" -#: vms-alpha.c:5910 +#: vms-alpha.c:5911 msgid " COM" msgstr "" -#: vms-alpha.c:5912 +#: vms-alpha.c:5913 msgid " 64B" msgstr "" -#: vms-alpha.c:5921 +#: vms-alpha.c:5922 #, c-format msgid " EGSD (len=%u):\n" msgstr "" -#: vms-alpha.c:5934 +#: vms-alpha.c:5935 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr "" -#: vms-alpha.c:5940 vms-alpha.c:6191 +#: vms-alpha.c:5941 vms-alpha.c:6192 #, c-format msgid " Error: length larger than remaining space in record\n" msgstr "" -#: vms-alpha.c:5952 +#: vms-alpha.c:5953 #, c-format msgid "PSC - Program section definition\n" msgstr "" -#: vms-alpha.c:5953 vms-alpha.c:5970 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " alignment : 2**%u\n" msgstr "" -#: vms-alpha.c:5954 vms-alpha.c:5971 +#: vms-alpha.c:5955 vms-alpha.c:5972 #, c-format msgid " flags : 0x%04x" msgstr "" -#: vms-al
# Smart is python based, so be sure python-native is available to us.
EXTRANATIVEPATH += "python-native"

do_populate_sdk[depends] += "rpm-native:do_populate_sysroot"
do_populate_sdk[depends] += "rpmresolve-native:do_populate_sysroot"
do_populate_sdk[depends] += "python-smartpm-native:do_populate_sysroot"

# Needed for update-alternatives
do_populate_sdk[depends] += "opkg-native:do_populate_sysroot"

# Creating the repo info in do_rootfs
do_populate_sdk[depends] += "createrepo-native:do_populate_sysroot"

do_populate_sdk[recrdeptask] += "do_package_write_rpm"

rpmlibdir = "/var/lib/rpm"
RPMOPTS="--dbpath ${rpmlibdir}"
RPM="rpm ${RPMOPTS}"

do_populate_sdk[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"

populate_sdk_post_rpm () {

	local target_rootfs=$1

	# remove lock files
	rm -f ${target_rootfs}/__db.*

	# Remove all remaining resolver files
	rm -rf ${target_rootfs}/install
	rm -rf ${target_rootfs}/var/lib/smart
}

populate_sdk_rpm () {

	package_update_index_rpm

	## install target ##
	# This needs to work in the same way as rootfs_rpm.bbclass!
	#
	export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
	export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${TARGET_VENDOR}-${TARGET_OS}"
	export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}"
	export INSTALL_PACKAGES_ATTEMPTONLY_RPM="$(echo '${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}' | sed 's/ *$//g')"
	export INSTALL_PACKAGES_LINGUAS_RPM=""
	# We don't need any of these runtime items for the SDK, so
	# just make the system assume they exist.
	export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig"
	export INSTALL_TASK_RPM="populate_sdk-target"
	export INSTALL_COMPLEMENTARY_RPM=""
	export INTERCEPT_DIR=${WORKDIR}/intercept_scripts
	export NATIVE_ROOT=${STAGING_DIR_NATIVE}

	# Setup base system configuration
	mkdir -p ${INSTALL_ROOTFS_RPM}/etc/rpm/

	# List must be prefered to least preferred order
	default_extra_rpm=""
	INSTALL_PLATFORM_EXTRA_RPM=""
	for os in ${MULTILIB_OS_LIST} ; do
		old_IFS="$IFS"
		IFS=":"
		set -- $os
		IFS="$old_IFS"
		mlib=$1
		mlib_os=$2
		for prefix in ${MULTILIB_PREFIX_LIST} ; do
			old_IFS="$IFS"
			IFS=":"
			set -- $prefix
			IFS="$old_IFS"
			if [ "$mlib" != "$1" ]; then
				continue
			fi
			shift #remove mlib
			while [ -n "$1" ]; do
				platform="$(echo $1 | tr - _)-.*-$mlib_os"
				if [ "$mlib" = "${BBEXTENDVARIANT}" ]; then
					default_extra_rpm="$default_extra_rpm $platform"
				else
					INSTALL_PLATFORM_EXTRA_RPM="$INSTALL_PLATFORM_EXTRA_RPM $platform"
				fi
				shift
			done
		done
	done
	if [ -n "$default_extra_rpm" ]; then
		INSTALL_PLATFORM_EXTRA_RPM="$default_extra_rpm $INSTALL_PLATFORM_EXTRA_RPM"
	fi
	export INSTALL_PLATFORM_EXTRA_RPM

	package_install_internal_rpm
	${POPULATE_SDK_POST_TARGET_COMMAND}
	populate_sdk_post_rpm ${INSTALL_ROOTFS_RPM}

	## install nativesdk ##
	echo "Installing NATIVESDK packages"
	export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}"
	export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${SDK_VENDOR}-${SDK_OS}"
	export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}"
	export INSTALL_PACKAGES_ATTEMPTONLY_RPM="$(echo '${TOOLCHAIN_HOST_TASK_ATTEMPTONLY}' | sed 's/ *$//g')"
	export INSTALL_PACKAGES_LINGUAS_RPM=""
	export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig libGL.so()(64bit) libGL.so"
	export INSTALL_TASK_RPM="populate_sdk_rpm-nativesdk"
	export INSTALL_COMPLEMENTARY_RPM=""

	# List must be prefered to least preferred order
	INSTALL_PLATFORM_EXTRA_RPM=""
	for each_arch in ${SDK_PACKAGE_ARCHS} ; do
		platform="$(echo $each_arch | tr - _)-.*-${SDK_OS}"
		INSTALL_PLATFORM_EXTRA_RPM="$platform $INSTALL_PLATFORM_EXTRA_RPM"
	done
	export INSTALL_PLATFORM_EXTRA_RPM

	package_install_internal_rpm --sdk
	${POPULATE_SDK_POST_HOST_COMMAND}
	populate_sdk_post_rpm ${INSTALL_ROOTFS_RPM}

	# move host RPM library data
	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/rpm
	mv ${SDK_OUTPUT}${rpmlibdir}/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/rpm/
	rm -Rf ${SDK_OUTPUT}/var

	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
	mv ${SDK_OUTPUT}/etc/* ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
	rm -rf ${SDK_OUTPUT}/etc

	populate_sdk_log_check populate_sdk
}

python () {
    # The following code should be kept in sync w/ the rootfs_rpm version.

    # package_arch order is reversed.  This ensures the -best- match is listed first!
    package_archs = d.getVar("PACKAGE_ARCHS", True) or ""
    package_archs = ":".join(package_archs.split()[::-1])
    package_os = d.getVar("TARGET_OS", True) or ""
    ml_prefix_list = "%s:%s" % ('default', package_archs)
    ml_os_list = "%s:%s" % ('default', package_os)
    multilibs = d.getVar('MULTILIBS', True) or ""
    for ext in multilibs.split():
        eext = ext.split(':')
        if len(eext) > 1 and eext[0] == 'multilib':
            localdata = bb.data.createCopy(d)
            default_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + eext[1], False)
            if default_tune:
                localdata.setVar("DEFAULTTUNE", default_tune)
                bb.data.update_data(localdata)
            package_archs = localdata.getVar("PACKAGE_ARCHS", True) or ""
            package_archs = ":".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()][::-1])
            package_os = localdata.getVar("TARGET_OS", True) or ""
            ml_prefix_list += " %s:%s" % (eext[1], package_archs)
            ml_os_list += " %s:%s" % (eext[1], package_os)
    d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list)
    d.setVar('MULTILIB_OS_LIST', ml_os_list)
}

RPM_QUERY_CMD = '${RPM} --root $INSTALL_ROOTFS_RPM -D "_dbpath ${rpmlibdir}"'

list_installed_packages() {
	if [ "$1" = "arch" ]; then
		${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe arch
	elif [ "$1" = "file" ]; then
		${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN}\n]" | translate_smart_to_oe file
	else
		${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe
	fi
}

rootfs_list_installed_depends() {
	rpmresolve -t $INSTALL_ROOTFS_RPM/${rpmlibdir}
}
a.c:6959 +#: vms-alpha.c:6960 #, c-format msgid "pointer\n" msgstr "" -#: vms-alpha.c:6967 +#: vms-alpha.c:6968 #, c-format msgid "array, dim: %u, bitmap: " msgstr "" -#: vms-alpha.c:6974 +#: vms-alpha.c:6975 #, c-format msgid "array descriptor:\n" msgstr "" -#: vms-alpha.c:6981 +#: vms-alpha.c:6982 #, c-format msgid "type spec for element:\n" msgstr "" -#: vms-alpha.c:6983 +#: vms-alpha.c:6984 #, c-format msgid "type spec for subscript %u:\n" msgstr "" -#: vms-alpha.c:7001 +#: vms-alpha.c:7002 #, c-format msgid "Debug symbol table:\n" msgstr "" -#: vms-alpha.c:7012 +#: vms-alpha.c:7013 #, c-format msgid "cannot read DST header\n" msgstr "" -#: vms-alpha.c:7018 +#: vms-alpha.c:7019 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr "" -#: vms-alpha.c:7032 +#: vms-alpha.c:7033 #, c-format msgid "cannot read DST symbol\n" msgstr "" -#: vms-alpha.c:7075 +#: vms-alpha.c:7076 #, c-format msgid "standard data: %s\n" msgstr "" -#: vms-alpha.c:7078 vms-alpha.c:7166 +#: vms-alpha.c:7079 vms-alpha.c:7167 #, c-format msgid " name: %.*s\n" msgstr "" -#: vms-alpha.c:7085 +#: vms-alpha.c:7086 #, c-format msgid "modbeg\n" msgstr "" -#: vms-alpha.c:7087 +#: vms-alpha.c:7088 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr "" -#: vms-alpha.c:7093 vms-alpha.c:7367 +#: vms-alpha.c:7094 vms-alpha.c:7368 #, c-format msgid " module name: %.*s\n" msgstr "" -#: vms-alpha.c:7096 +#: vms-alpha.c:7097 #, c-format msgid " compiler : %.*s\n" msgstr "" -#: vms-alpha.c:7101 +#: vms-alpha.c:7102 #, c-format msgid "modend\n" msgstr "" -#: vms-alpha.c:7108 +#: vms-alpha.c:7109 msgid "rtnbeg\n" msgstr "" -#: vms-alpha.c:7110 +#: vms-alpha.c:7111 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr "" -#: vms-alpha.c:7115 +#: vms-alpha.c:7116 #, c-format msgid " routine name: %.*s\n" msgstr "" -#: vms-alpha.c:7123 +#: vms-alpha.c:7124 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "" -#: vms-alpha.c:7131 +#: vms-alpha.c:7132 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "" -#: vms-alpha.c:7140 +#: vms-alpha.c:7141 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "" -#: vms-alpha.c:7150 +#: vms-alpha.c:7151 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "" -#: vms-alpha.c:7159 +#: vms-alpha.c:7160 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "" -#: vms-alpha.c:7165 +#: vms-alpha.c:7166 #, c-format msgid "typspec (len: %u)\n" msgstr "" -#: vms-alpha.c:7172 +#: vms-alpha.c:7173 #, c-format msgid "septyp, name: %.*s\n" msgstr "" -#: vms-alpha.c:7181 +#: vms-alpha.c:7182 #, c-format msgid "recbeg: name: %.*s\n" msgstr "" -#: vms-alpha.c:7183 +#: vms-alpha.c:7184 #, c-format msgid " len: %u bits\n" msgstr "" -#: vms-alpha.c:7188 +#: vms-alpha.c:7189 #, c-format msgid "recend\n" msgstr "" -#: vms-alpha.c:7192 +#: vms-alpha.c:7193 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "" -#: vms-alpha.c:7196 +#: vms-alpha.c:7197 #, c-format msgid "enumelt, name: %.*s\n" msgstr "" -#: vms-alpha.c:7200 +#: vms-alpha.c:7201 #, c-format msgid "enumend\n" msgstr "" -#: vms-alpha.c:7205 +#: vms-alpha.c:7206 #, c-format msgid "label, name: %.*s\n" msgstr "" -#: vms-alpha.c:7207 +#: vms-alpha.c:7208 #, c-format msgid " address: 0x%08x\n" msgstr "" -#: vms-alpha.c:7217 +#: vms-alpha.c:7218 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "" -#: vms-alpha.c:7220 +#: vms-alpha.c:7221 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr "" -#: vms-alpha.c:7230 +#: vms-alpha.c:7231 #, c-format msgid "line num (len: %u)\n" msgstr "" -#: vms-alpha.c:7247 +#: vms-alpha.c:7248 #, c-format msgid "delta_pc_w %u\n" msgstr "" -#: vms-alpha.c:7254 +#: vms-alpha.c:7255 #, c-format msgid "incr_linum(b): +%u\n" msgstr "" -#: vms-alpha.c:7260 +#: vms-alpha.c:7261 #, c-format msgid "incr_linum_w: +%u\n" msgstr "" -#: vms-alpha.c:7266 +#: vms-alpha.c:7267 #, c-format msgid "incr_linum_l: +%u\n" msgstr "" -#: vms-alpha.c:7272 +#: vms-alpha.c:7273 #, c-format msgid "set_line_num(w) %u\n" msgstr "" -#: vms-alpha.c:7277 +#: vms-alpha.c:7278 #, c-format msgid "set_line_num_b %u\n" msgstr "" -#: vms-alpha.c:7282 +#: vms-alpha.c:7283 #, c-format msgid "set_line_num_l %u\n" msgstr "" -#: vms-alpha.c:7287 +#: vms-alpha.c:7288 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7291 +#: vms-alpha.c:7292 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "" -#: vms-alpha.c:7296 +#: vms-alpha.c:7297 #, c-format msgid "term(b): 0x%02x" msgstr "" -#: vms-alpha.c:7298 +#: vms-alpha.c:7299 #, c-format msgid " pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7303 +#: vms-alpha.c:7304 #, c-format msgid "term_w: 0x%04x" msgstr "" -#: vms-alpha.c:7305 +#: vms-alpha.c:7306 #, c-format msgid " pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7311 +#: vms-alpha.c:7312 #, c-format msgid "delta pc +%-4d" msgstr "" -#: vms-alpha.c:7315 +#: vms-alpha.c:7316 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr "" -#: vms-alpha.c:7320 +#: vms-alpha.c:7321 #, c-format msgid " *unhandled* cmd %u\n" msgstr "" -#: vms-alpha.c:7335 +#: vms-alpha.c:7336 #, c-format msgid "source (len: %u)\n" msgstr "" -#: vms-alpha.c:7350 +#: vms-alpha.c:7351 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr "" -#: vms-alpha.c:7355 +#: vms-alpha.c:7356 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr "" -#: vms-alpha.c:7364 +#: vms-alpha.c:7365 #, c-format msgid " filename : %.*s\n" msgstr "" -#: vms-alpha.c:7373 +#: vms-alpha.c:7374 #, c-format msgid " setfile %u\n" msgstr "" -#: vms-alpha.c:7378 vms-alpha.c:7383 +#: vms-alpha.c:7379 vms-alpha.c:7384 #, c-format msgid " setrec %u\n" msgstr "" -#: vms-alpha.c:7388 vms-alpha.c:7393 +#: vms-alpha.c:7389 vms-alpha.c:7394 #, c-format msgid " setlnum %u\n" msgstr "" -#: vms-alpha.c:7398 vms-alpha.c:7403 +#: vms-alpha.c:7399 vms-alpha.c:7404 #, c-format msgid " deflines %u\n" msgstr "" -#: vms-alpha.c:7407 +#: vms-alpha.c:7408 #, c-format msgid " formfeed\n" msgstr "" -#: vms-alpha.c:7411 +#: vms-alpha.c:7412 #, c-format msgid " *unhandled* cmd %u\n" msgstr "" -#: vms-alpha.c:7423 +#: vms-alpha.c:7424 #, c-format msgid "*unhandled* dst type %u\n" msgstr "" -#: vms-alpha.c:7455 +#: vms-alpha.c:7456 #, c-format msgid "cannot read EIHD\n" msgstr "" -#: vms-alpha.c:7459 +#: vms-alpha.c:7460 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "" -#: vms-alpha.c:7463 +#: vms-alpha.c:7464 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr "" -#: vms-alpha.c:7471 +#: vms-alpha.c:7472 msgid "executable" msgstr "" -#: vms-alpha.c:7474 +#: vms-alpha.c:7475 msgid "linkable image" msgstr "" -#: vms-alpha.c:7481 +#: vms-alpha.c:7482 #, c-format msgid " image type: %u (%s)" msgstr "" -#: vms-alpha.c:7487 +#: vms-alpha.c:7488 msgid "native" msgstr "" -#: vms-alpha.c:7490 +#: vms-alpha.c:7491 msgid "CLI" msgstr "" -#: vms-alpha.c:7497 +#: vms-alpha.c:7498 #, c-format msgid ", subtype: %u (%s)\n" msgstr "" -#: vms-alpha.c:7504 +#: vms-alpha.c:7505 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr "" -#: vms-alpha.c:7508 +#: vms-alpha.c:7509 #, c-format msgid " fixup info rva: " msgstr "" -#: vms-alpha.c:7510 +#: vms-alpha.c:7511 #, c-format msgid ", symbol vector rva: " msgstr "" -#: vms-alpha.c:7513 +#: vms-alpha.c:7514 #, c-format msgid "" "\n" " version array off: %u\n" msgstr "" -#: vms-alpha.c:7518 +#: vms-alpha.c:7519 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr "" -#: vms-alpha.c:7524 +#: vms-alpha.c:7525 #, c-format msgid " linker flags: %08x:" msgstr "" -#: vms-alpha.c:7555 +#: vms-alpha.c:7556 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr "" -#: vms-alpha.c:7561 +#: vms-alpha.c:7562 #, c-format msgid " BPAGE: %u" msgstr "" -#: vms-alpha.c:7568 +#: vms-alpha.c:7569 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr "" -#: vms-alpha.c:7571 +#: vms-alpha.c:7572 #, c-format msgid ", alias: %u\n" msgstr "" -#: vms-alpha.c:7579 +#: vms-alpha.c:7580 #, c-format msgid "system version array information:\n" msgstr "" -#: vms-alpha.c:7583 +#: vms-alpha.c:7584 #, c-format msgid "cannot read EIHVN header\n" msgstr "" -#: vms-alpha.c:7593 +#: vms-alpha.c:7594 #, c-format msgid "cannot read EIHVN version\n" msgstr "" -#: vms-alpha.c:7596 +#: vms-alpha.c:7597 #, c-format msgid " %02u " msgstr "" -#: vms-alpha.c:7600 +#: vms-alpha.c:7601 msgid "BASE_IMAGE " msgstr "" -#: vms-alpha.c:7603 +#: vms-alpha.c:7604 msgid "MEMORY_MANAGEMENT" msgstr "" -#: vms-alpha.c:7606 +#: vms-alpha.c:7607 msgid "IO " msgstr "" -#: vms-alpha.c:7609 +#: vms-alpha.c:7610 msgid "FILES_VOLUMES " msgstr "" -#: vms-alpha.c:7612 +#: vms-alpha.c:7613 msgid "PROCESS_SCHED " msgstr "" -#: vms-alpha.c:7615 +#: vms-alpha.c:7616 msgid "SYSGEN " msgstr "" -#: vms-alpha.c:7618 +#: vms-alpha.c:7619 msgid "CLUSTERS_LOCKMGR " msgstr "" -#: vms-alpha.c:7621 +#: vms-alpha.c:7622 msgid "LOGICAL_NAMES " msgstr "" -#: vms-alpha.c:7624 +#: vms-alpha.c:7625 msgid "SECURITY " msgstr "" -#: vms-alpha.c:7627 +#: vms-alpha.c:7628 msgid "IMAGE_ACTIVATOR " msgstr "" -#: vms-alpha.c:7630 +#: vms-alpha.c:7631 msgid "NETWORKS " msgstr "" -#: vms-alpha.c:7633 +#: vms-alpha.c:7634 msgid "COUNTERS " msgstr "" -#: vms-alpha.c:7636 +#: vms-alpha.c:7637 msgid "STABLE " msgstr "" -#: vms-alpha.c:7639 +#: vms-alpha.c:7640 msgid "MISC " msgstr "" -#: vms-alpha.c:7642 +#: vms-alpha.c:7643 msgid "CPU " msgstr "" -#: vms-alpha.c:7645 +#: vms-alpha.c:7646 msgid "VOLATILE " msgstr "" -#: vms-alpha.c:7648 +#: vms-alpha.c:7649 msgid "SHELL " msgstr "" -#: vms-alpha.c:7651 +#: vms-alpha.c:7652 msgid "POSIX " msgstr "" -#: vms-alpha.c:7654 +#: vms-alpha.c:7655 msgid "MULTI_PROCESSING " msgstr "" -#: vms-alpha.c:7657 +#: vms-alpha.c:7658 msgid "GALAXY " msgstr "" -#: vms-alpha.c:7660 +#: vms-alpha.c:7661 msgid "*unknown* " msgstr "" -#: vms-alpha.c:7676 vms-alpha.c:7951 +#: vms-alpha.c:7677 vms-alpha.c:7952 #, c-format msgid "cannot read EIHA\n" msgstr "" -#: vms-alpha.c:7679 +#: vms-alpha.c:7680 #, c-format msgid "Image activation: (size=%u)\n" msgstr "" -#: vms-alpha.c:7682 +#: vms-alpha.c:7683 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7686 +#: vms-alpha.c:7687 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7690 +#: vms-alpha.c:7691 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7694 +#: vms-alpha.c:7695 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7698 +#: vms-alpha.c:7699 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7709 +#: vms-alpha.c:7710 #, c-format msgid "cannot read EIHI\n" msgstr "" -#: vms-alpha.c:7713 +#: vms-alpha.c:7714 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7716 +#: vms-alpha.c:7717 #, c-format msgid " image name : %.*s\n" msgstr "" -#: vms-alpha.c:7718 +#: vms-alpha.c:7719 #, c-format msgid " link time : %s\n" msgstr "" -#: vms-alpha.c:7720 +#: vms-alpha.c:7721 #, c-format msgid " image ident : %.*s\n" msgstr "" -#: vms-alpha.c:7722 +#: vms-alpha.c:7723 #, c-format msgid " linker ident : %.*s\n" msgstr "" -#: vms-alpha.c:7724 +#: vms-alpha.c:7725 #, c-format msgid " image build ident: %.*s\n" msgstr "" -#: vms-alpha.c:7734 +#: vms-alpha.c:7735 #, c-format msgid "cannot read EIHS\n" msgstr "" -#: vms-alpha.c:7738 +#: vms-alpha.c:7739 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7744 +#: vms-alpha.c:7745 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr "" -#: vms-alpha.c:7749 +#: vms-alpha.c:7750 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr "" -#: vms-alpha.c:7754 +#: vms-alpha.c:7755 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr "" -#: vms-alpha.c:7767 +#: vms-alpha.c:7768 #, c-format msgid "cannot read EISD\n" msgstr "" -#: vms-alpha.c:7778 +#: vms-alpha.c:7779 #, c-format msgid "" "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "" -#: vms-alpha.c:7786 +#: vms-alpha.c:7787 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr "" -#: vms-alpha.c:7791 +#: vms-alpha.c:7792 #, c-format msgid " flags: 0x%04x" msgstr "" -#: vms-alpha.c:7829 +#: vms-alpha.c:7830 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr "" -#: vms-alpha.c:7835 +#: vms-alpha.c:7836 msgid "NORMAL" msgstr "" -#: vms-alpha.c:7838 +#: vms-alpha.c:7839 msgid "SHRFXD" msgstr "" -#: vms-alpha.c:7841 +#: vms-alpha.c:7842 msgid "PRVFXD" msgstr "" -#: vms-alpha.c:7844 +#: vms-alpha.c:7845 msgid "SHRPIC" msgstr "" -#: vms-alpha.c:7847 +#: vms-alpha.c:7848 msgid "PRVPIC" msgstr "" -#: vms-alpha.c:7850 +#: vms-alpha.c:7851 msgid "USRSTACK" msgstr "" -#: vms-alpha.c:7856 +#: vms-alpha.c:7857 msgid ")\n" msgstr "" -#: vms-alpha.c:7859 +#: vms-alpha.c:7860 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr "" -#: vms-alpha.c:7869 +#: vms-alpha.c:7870 #, c-format msgid "cannot read DMT\n" msgstr "" -#: vms-alpha.c:7873 +#: vms-alpha.c:7874 #, c-format msgid "Debug module table:\n" msgstr "" -#: vms-alpha.c:7882 +#: vms-alpha.c:7883 #, c-format msgid "cannot read DMT header\n" msgstr "" -#: vms-alpha.c:7888 +#: vms-alpha.c:7889 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr "" -#: vms-alpha.c:7898 +#: vms-alpha.c:7899 #, c-format msgid "cannot read DMT psect\n" msgstr "" -#: vms-alpha.c:7902 +#: vms-alpha.c:7903 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr "" -#: vms-alpha.c:7915 +#: vms-alpha.c:7916 #, c-format msgid "cannot read DST\n" msgstr "" -#: vms-alpha.c:7925 +#: vms-alpha.c:7926 #, c-format msgid "cannot read GST\n" msgstr "" -#: vms-alpha.c:7929 +#: vms-alpha.c:7930 #, c-format msgid "Global symbol table:\n" msgstr "" -#: vms-alpha.c:7958 +#: vms-alpha.c:7959 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7962 +#: vms-alpha.c:7963 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:7966 +#: vms-alpha.c:7967 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:7969 +#: vms-alpha.c:7970 #, c-format msgid " size : %u\n" msgstr "" -#: vms-alpha.c:7971 +#: vms-alpha.c:7972 #, c-format msgid " flags: 0x%08x\n" msgstr "" -#: vms-alpha.c:7976 +#: vms-alpha.c:7977 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr "" -#: vms-alpha.c:7981 +#: vms-alpha.c:7982 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr "" -#: vms-alpha.c:7986 +#: vms-alpha.c:7987 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr "" -#: vms-alpha.c:7989 +#: vms-alpha.c:7990 #, c-format msgid " chgprtoff : %5u\n" msgstr "" -#: vms-alpha.c:7993 +#: vms-alpha.c:7994 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr "" -#: vms-alpha.c:7996 +#: vms-alpha.c:7997 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr "" -#: vms-alpha.c:7999 +#: vms-alpha.c:8000 #, c-format msgid " base_va : 0x%08x\n" msgstr "" -#: vms-alpha.c:8001 +#: vms-alpha.c:8002 #, c-format msgid " lppsbfixoff: %5u\n" msgstr "" -#: vms-alpha.c:8009 +#: vms-alpha.c:8010 #, c-format msgid " Shareable images:\n" msgstr "" -#: vms-alpha.c:8014 +#: vms-alpha.c:8015 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr "" -#: vms-alpha.c:8021 +#: vms-alpha.c:8022 #, c-format msgid " quad-word relocation fixups:\n" msgstr "" -#: vms-alpha.c:8026 +#: vms-alpha.c:8027 #, c-format msgid " long-word relocation fixups:\n" msgstr "" -#: vms-alpha.c:8031 +#: vms-alpha.c:8032 #, c-format msgid " quad-word .address reference fixups:\n" msgstr "" -#: vms-alpha.c:8036 +#: vms-alpha.c:8037 #, c-format msgid " long-word .address reference fixups:\n" msgstr "" -#: vms-alpha.c:8041 +#: vms-alpha.c:8042 #, c-format msgid " Code Address Reference Fixups:\n" msgstr "" -#: vms-alpha.c:8046 +#: vms-alpha.c:8047 #, c-format msgid " Linkage Pairs Reference Fixups:\n" msgstr "" -#: vms-alpha.c:8055 +#: vms-alpha.c:8056 #, c-format msgid " Change Protection (%u entries):\n" msgstr "" -#: vms-alpha.c:8061 +#: vms-alpha.c:8062 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr "" #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8901 +#: vms-alpha.c:8902 msgid "%P: relocatable link is not supported\n" msgstr "" -#: vms-alpha.c:8972 +#: vms-alpha.c:8973 #, c-format -msgid "%P: multiple entry points: in modules %B and %B\n" +msgid "%P: multiple entry points: in modules %pB and %pB\n" msgstr "" #: vms-lib.c:1445 @@ -8537,7 +8508,7 @@ msgstr "" #: peigen.c:1906 peigen.c:2103 pepigen.c:1906 pepigen.c:2103 pex64igen.c:1906 #: pex64igen.c:2103 #, c-format -msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" +msgid "warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "" #: peigen.c:1910 peigen.c:2107 pepigen.c:1910 pepigen.c:2107 pex64igen.c:1910 Index: git/bfd/ChangeLog =================================================================== --- git.orig/bfd/ChangeLog +++ git/bfd/ChangeLog @@ -1,3 +1,9 @@ +2018-04-24 Nick Clifton + + PR 23110 + * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Check for + a negative PE_DEBUG_DATA size before iterating over the debug data. + 2018-04-17 Nick Clifton PR 23065