www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2002/05/23/15:59:38

Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm
Sender: cygwin-apps-owner AT cygwin DOT com
List-Subscribe: <mailto:cygwin-apps-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT cygwin DOT com>
List-Help: <mailto:cygwin-apps-help AT cygwin DOT com>, <http://sources.redhat.com/lists.html#faqs>
Mail-Followup-To: cygwin-apps AT cygwin DOT com
Delivered-To: mailing list cygwin-apps AT cygwin DOT com
From: "Ralf Habacker" <Ralf DOT Habacker AT freenet DOT de>
To: "Cygwin-Apps" <cygwin-apps AT cygwin DOT com>,
"Binutils" <binutils AT sources DOT redhat DOT com>
Cc: "Nick Clifton" <nickc AT cambridge DOT redhat DOT com>,
"LaurentPinchart" <laurent DOT pinchart AT skynet DOT be>
Subject: RE: binutils status ?
Date: Thu, 23 May 2002 21:59:06 +0200
Message-ID: <006a01c20294$4bbc1d30$905f07d5@BRAMSCHE>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Importance: Normal
In-Reply-To: <000501c20103$b942fd20$905f07d5@BRAMSCHE>

Relating to this patch for peXXigen.c

bfd/peXXigen.c:

>date: 2002/05/15 15:28:12;  author: nickc;  state: Exp;  lines: +54 -3
>Do not assume that the first thunk is located in the same section as the
>import table.  Instead check, and if necessary load the section containing
>the thunk.

I have a question, which can perhaps answer anyone:

Does symbols, for which this patch is, are located in the text segment ?

The reason for this questioin is, because for auto-imported symbols the
first_thunk entry of the IMAGE_IMPORT_DESCRIPTOR points directly into the text
segment to a pointer and not(!) to an
IMAGE_IMPORT_BY_NAME structure, which lets the following codefragement crashes.

peXXigen.c::pe_print_idata()
<snip>
		    	--- get IMAGE_IMPORT_BY_NAME structure values ----
		      ordinal = bfd_get_16 (abfd, data + iat_member - adj);
		      member_name = (char *) data + iat_member - adj + 2;
		      fprintf (file, "\t%04lx\t %4d  %s\n",
			      (unsigned long) iat_member,
			      ordinal,
			      member_name);
		    }

Or does anyone another idea how to solve this ?

Ralf



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019