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