Mercurial > hg > xemacs-beta
diff src/eldap.c @ 327:03446687b7cc r21-0-61
Import from CVS: tag r21-0-61
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:48:16 +0200 |
parents | c6de09ad3017 |
children | 7347b34c275b |
line wrap: on
line diff
--- a/src/eldap.c Mon Aug 13 10:47:36 2007 +0200 +++ b/src/eldap.c Mon Aug 13 10:48:16 2007 +0200 @@ -26,6 +26,7 @@ conforming to the API defined in RFC 1823. It has been tested with: - UMich LDAP 3.3 (http://www.umich.edu/~dirsvcs/ldap/) + - OpenLDAP 1.0.3 (http://www.openldap.org/) - Netscape's LDAP SDK 1.0 (http://developer.netscape.com) */ @@ -33,6 +34,7 @@ #include "lisp.h" #include "opaque.h" #include "sysdep.h" +#include "buffer.h" #include <errno.h> @@ -244,15 +246,13 @@ else if (EQ (keyword, Qbinddn)) { CHECK_STRING (value); - ldap_binddn = alloca (XSTRING_LENGTH (value) + 1); - strcpy (ldap_binddn, (char *)XSTRING_DATA (value)); + GET_C_STRING_OS_DATA_ALLOCA (value, ldap_binddn); } /* Password */ else if (EQ (keyword, Qpasswd)) { CHECK_STRING (value); - ldap_passwd = alloca (XSTRING_LENGTH (value) + 1); - strcpy (ldap_passwd, (char *)XSTRING_DATA (value)); + GET_C_STRING_OS_DATA_ALLOCA (value, ldap_passwd); } /* Deref */ else if (EQ (keyword, Qderef)) @@ -454,11 +454,7 @@ { Lisp_Object current = XCAR (attrs); CHECK_STRING (current); - ldap_attributes[i] = - alloca_array (char, 1 + XSTRING_LENGTH (current)); - /* XSTRING_LENGTH is increased by one in order to copy the final 0 */ - memcpy (ldap_attributes[i], - XSTRING_DATA (current), 1 + XSTRING_LENGTH (current)); + GET_C_STRING_OS_DATA_ALLOCA (current, ldap_attributes[i]); ++i; } ldap_attributes[i] = NULL;