[64bit] openldap compilation doesn't produce shared libraries

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Thu Jun 13 01:52:00 GMT 2013


On 2013-06-10 07:46, Dr. Volker Zell wrote:
> I think the stack trace translates to the following:
>
> Stack trace:
> Frame        Function    Args
> ber_get_stringbvl
> /usr/src/debug/openldap-2.4.35-1/libraries/liblber/decode.c:414
> ber_scanf
> /usr/src/debug/openldap-2.4.35-1/libraries/liblber/decode.c:790
> ldap_get_attribute_ber
> /usr/src/debug/openldap-2.4.35-1/libraries/libldap/getattr.c:132
> print_entry
> /usr/src/debug/openldap-2.4.35-1/clients/tools/ldapsearch.c:1634
> main
> /usr/src/debug/openldap-2.4.35-1/clients/tools/ldapsearch.c:1222
>
> The offending code line
> 	case BvOff:
> 		res.bo = (char *) b->result + b->off;
> 		((struct berval *) (res.bo + tot_size))->bv_val = NULL;   <- line 414
> 		tot_size = 0;
> 		break;

That is where it is crashing, but after some debugging, AFAICS the real 
culprit is the call to ber_scanf() in ldap_get_attribute_ber(). 
Presumably because this is a varargs function, the compiler wasn't able 
to handle the necessary type promotion automatically (ber_len_t is an 
unsigned long); so b->off was showing here as 0x600000000, taking line 
414 off to la-la land.  Patch attached and pushed to Ports git.


Yaakov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: openldap-ber_scanf-segv.patch
Type: text/x-patch
Size: 471 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20130613/8219ae17/attachment.bin>


More information about the Cygwin-apps mailing list