Ralf,

You switched mailing lists on me.  Plus, I've reattached the patch after
converting it to binary mode.

On Fri, Feb 14, 2003 at 02:42:40PM +0100, Ralf Habacker wrote:
> > I'm concerned that my guard might have an off-by-one error and miss
> > the last entry.  Is there an easy way to check this?
> 
> I have compared this with, what objdump says and it seems there is no
> difference.

I did some checking and arrived at the same conclusion.

> I've checked in your changes additional with some debug informations
> printings in Relocations::check()

Thanks.

I found another bug (most likely introduce by me in a previous patch)
when rebasing up and the DLL is already based at the requested address.
The attached patch is one way to correct this problem.

Thanks,
Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6
Index: rebaseimage.cc
===================================================================
RCS file: /cvsroot/kde-cygwin/tools/rebase/rebaseimage.cc,v
retrieving revision 1.6
diff -u -p -r1.6 rebaseimage.cc
--- rebaseimage.cc      30 Jan 2003 23:21:43 -0000      1.6
+++ rebaseimage.cc      14 Feb 2003 15:51:19 -0000
@@ -79,6 +79,8 @@ BOOL ReBaseImage(
   // already rebased
   if (ntheader->OptionalHeader.ImageBase == *NewImageBase)
     {
+      if (!fGoingDown)
+        *NewImageBase += *NewImageSize;
       if (Base::debug)
         std::cerr << "dll is already rebased" << std::endl;
       SetLastError(NO_ERROR);

Reply via email to