In getrrsetbyname(), the value of rrset->rri_nsigs is not checked before calling calloc() to initialize rrset->rri_sigs -- this is a problem when rri_nsigs is 0, since calloc() returns a null pointer on some OSes when asked to allocate 0 bytes. Quoting POSIX regarding calloc(): "If the size of the space requested is 0, the behavior is implementation-defined: the value returned shall be either a null pointer or a unique pointer." Tru64 5.1A, for example, does return NULL in this case -- see http://marc.theaimsgroup.com/?l=openssh-unix-dev&m=117098800530793 A minimal patch against 4.4p1 is attached
Created attachment 1236 [details] Patch against 4.4p1 This patch checks that there are indeed SIG records before allocating space for them -- see bug report for mor details
Comment on attachment 1236 [details] Patch against 4.4p1 Looks reasonable to me.
Applied thanks, and nice work figuring it out.
Close resolved bugs after release.