[OpenAFS] iTunes Update breaks OpenAFS for Windows on 32-bit Windows

ENEM | Hans Melgers hans@enem.nl
Thu, 11 Jun 2009 15:24:35 +0200


Thanks for the update, i just had a first case with this problem. 
Is apple informed about this (and is there a chance they will change it ?) =
?
Is it possible to get a workaround in future versions in case they don=E2=
=80=99t ?



-----Original Message-----
From: openafs-info-admin@openafs.org [mailto:openafs-info-admin@openafs.org=
] On Behalf Of Jeffrey Altman
Sent: woensdag 10 juni 2009 18:38
To: openafs
Subject: [OpenAFS] iTunes Update breaks OpenAFS for Windows on 32-bit Windo=
ws


Please advise your help desk staff to be on the lookout for a sudden
increase in complaints about OpenAFS for Windows not working. 

The symptoms are that \\AFS is inaccessible and an examination of the
%windir%\temp\afsd_init.log file indicates a memory mapping failure when
attempting to load the AFSCache file.  This problem is likely to affect
any user of OpenAFS for Windows on 32-bit Windows with iTunes installed
that set their cache size to be larger than 500mb. 

The problem:

Apple updated the Bonjour distribution as part of the most recent iTunes
update.  Included in the distribution is a file called mdnsNSP.dll which
is inserted into the process memory space of every application on the
system that makes use of the WinSock APIs.  This DLL permits Bonjour
discovery services to be used as a DNS replacement automatically.  Apple
set an image base of (16080000 to 160A4FFF) which is smack in the middle
of the 32-bit process data range instead of using a value around
60000000 as recommended by Microsoft.

The work around:

The Microsoft SDK provides a tool called rebase.exe which is used by
developers to modify the base address of a DLL.  The following
operations can be used to move mdnsNSP.dll to the correct location in
memory.

    1. cd to c:\program files\bonjour
    2. rename mdnsNSP.dll to mdnsNSP.dll.inuse
    3. copy mdnsNSP.dll.inuse to mdnsNSP.dll
    4. rebase -d -b 0x60000000 mdnsNSP.dll

The next time the OpenAFS for Windows service is started the dll will be
loaded into the correct range in memory. 

Unfortunately, it is likely that the next iTunes update will break this
again.  End users are also unlikely to have access to the rebase.exe
command.

The command "dumpbin /headers mdnsNSP.dll" can be used to determine the
image base.

The affected version of mdnsNSP.dll is 1.0.6.2.

Jeffrey Altman


_______________________________________________
OpenAFS-info mailing list
OpenAFS-info@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-info