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 - 1.6
+++ rebaseimage.cc 14 Feb 2003 15:51:19 -
@@ -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);