dnssec-signzone crash on Windows 2000
mayer at gis.net
mayer at gis.net
Tue Jan 18 21:18:06 UTC 2005
I submitted fixes for this to bind9-bugs (not bind-bugs) several months
ago.
It wasn't just the dnssec-signzone there were changes required for some
of
the other builds. Your fix is correct for the .exe files and that was
the
change that I submitted. It is not necessary to change libisc.dsp since
that
is already set up correctly. Also /MDd is the debug version. For the
release
version it needs to be /MD.
Danny
----- Original Message Follows -----
> Hello,
> I've tried using dnssec-signzone from the Win32 BIND 9.3.0 binary
> distribution to sign a simple zone on Windows 2000 SP4 and failed, the
> app crashing with an access violation. The same operation succeeded on
> Solaris, using the same key and zone files. The zone file and key
> files are attached (they were used for testing purposes only, the
> zone file too - it's bogus).
>
> The command line used was:
>
> dnssec-signzone -v 99 -o ns.itc.ro -t ns.itc.ro.db
> Kns.itc.ro.+001+24110
>
> I remember experiencing crashes with dnssec-signzone in 9.2.3 when
> using RSA keys. The problem would go away when recompiling BIND. This
> is also true for 9.3.0, as shown below, but we're lucky to have a MS
> VC++ 6.0 license, others might not be that lucky.
>
> Here's what a co-worker found when trying to debug this problem:
>
> The stack trace for the crash is:
>
> "First-chance exception in dnssec-signzone.exe (NTDLL.DLL):
> 0xC0000005: Access Violation."
>
> NTDLL! 77f88216()
>
> NTDLL! 77f8819b()
>
> LIBISC! 10012cbf()
> ----------------------------
>
> Using a debug version, the stack trace becomes:
>
> NTDLL! 77f88216()
>
> NTDLL! 77f8819b()
>
> fprintf(_iobuf * 0x00437ab8, const char * 0x100677a0 `string') line 62
> + 9 bytes
>
> isc_log_doit(isc_log * 0x007fb458, isc_logcategory * 0x1006f9d0,
> isc_logmodule * 0x00691980, int -3, int 0, isc_msgcat * 0x00000000,
> int 0, int 0, const char * 0x0066a19c `string', char * 0x0012ec6c)
> line 1700 + 407 bytes
>
> isc_log_vwrite(isc_log * 0x007fb458, isc_logcategory * 0x1006f9d0,
> isc_logmodule * 0x00691980, int -3, const char * 0x0066a19c `string',
> char * 0x0012ec6c) line 846 + 37 bytes
>
> isclog_warn_callback(dns_rdatacallbacks * 0x0012fbe4, const char *
> 0x0066a19c `string') line 80 + 36 bytes
>
> load(dns_loadctx * 0x00803da0) line 1771 + 44 bytes
>
> dns_master_loadfile(const char * 0x00d60ed4, dns_name * 0x00802670,
> dns_name * 0x00802670, unsigned short 1, unsigned int 0,
> dns_rdatacallbacks * 0x0012fbe4, isc_mem * 0x00801c80) line 1913 + 9
> bytes
>
> dns_db_load(dns_db * 0x00802660, const char * 0x00d60ed4) line 324 +
> 46 bytes
>
> loadzone(char * 0x00d60ed4, char * 0x00d60ec7, unsigned short 1,
> dns_db * * 0x0043942c gdb) line 1323 + 15 bytes
>
> main(int 1, char * * 0x00d60e7c) line 1884 + 23 bytes
>
> mainCRTStartup() line 206 + 25 bytes
> ------------------------------------------------------------
>
> The problem is fixed by altering compilation options for libisc.dll
> and dnssec-signzone.exe and recompiling, namely, under Project
> Settings -> C/C++ -> Code Generation -> Use run-time library ->
> "Multithreaded DLL" instead of "Multithreaded" as in the original dsp
> - thus using the /MD option instead of /MT for the MS compiler for
> dnssec-signzone and, strangely, /MTd instead of /MDd for libisc. The
> diffs are attached.
>
> I put bind-bugs in the Cc field because I presume this to be a bug,
> even if it's in the project settings and not in the actual source.
> Can somebody please confirm this?
>
>
More information about the bind-users
mailing list