diff --git a/Makefile b/Makefile index b9fd31a..1cbfa0f 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,8 @@ CFLAGS=-pipe -I. -Wall -W -g endif ifneq ($(DIET),) LIBS+=-llatin1 +else +LIBS+=-lcrypto endif %.o: %.c diff --git a/auth.c b/auth.c index 24690a3..6fb1c9a 100644 --- a/auth.c +++ b/auth.c @@ -1,7 +1,14 @@ #ifdef __FreeBSD__ #include #endif +#ifdef __dietlibc__ #include +#else +#include +#define MD5Init MD5_Init +#define MD5Update MD5_Update +#define MD5Final MD5_Final +#endif #include "ldap.h" #include "auth.h" #include "str.h" diff --git a/ldif_parse.c b/ldif_parse.c index 9c49ffa..1b18551 100644 --- a/ldif_parse.c +++ b/ldif_parse.c @@ -144,12 +144,15 @@ lookagain: } else if (c=='\n') { struct ldaprec* m; - if (!stralloc_0(&payload)) goto nomem; - if (base64) { - len=unbase64(payload.s); - if (!binary) { payload.s[len]=0; ++len; } + if (payload.len) { + if (!stralloc_0(&payload)) goto nomem; + if (base64) { + len=unbase64(payload.s); + if (!binary) { payload.s[len]=0; ++len; } + } else + len=n+1; } else - len=n+1; + len=0; #if 0 buffer_puts(buffer_2,"feld \""); @@ -199,12 +202,15 @@ lookagain: // buf[n]=0; #if 1 - if (!stralloc_0(&payload)) goto nomem; - if (base64) { - len=unbase64(payload.s); - if (!binary) { payload.s[len]=0; ++len; } + if (payload.len) { + if (!stralloc_0(&payload)) goto nomem; + if (base64) { + len=unbase64(payload.s); + if (!binary) { payload.s[len]=0; ++len; } + } else + len=n+1; } else - len=n+1; + len=0; #if 0 buffer_puts(buffer_2,"feld \""); diff --git a/md5password.c b/md5password.c index 826edf7..de5620e 100644 --- a/md5password.c +++ b/md5password.c @@ -1,7 +1,14 @@ #ifdef __FreeBSD__ #include #endif +#ifdef __dietlibc__ #include +#else +#include +#define MD5Init MD5_Init +#define MD5Update MD5_Update +#define MD5Final MD5_Final +#endif #include #include "buffer.h" #include "str.h" diff --git a/mstorage_add_bin.c b/mstorage_add_bin.c index 6ef4684..ea9b518 100644 --- a/mstorage_add_bin.c +++ b/mstorage_add_bin.c @@ -11,7 +11,7 @@ long mstorage_add_bin(mstorage_t* p,const char* s,unsigned long n) { static char zero; long x; char intbuf[4]; - if (n==0) goto encodebinary; + if (n==0 || (n==1 && s[0]==0)) goto encodebinary; for (i=0; i