UTF-8 and LDAP

Andrew Bartlett abartlet at pcug.org.au
Fri Mar 1 20:20:25 GMT 2002


Juergen Hasch wrote:
> 
> Am Freitag, 1. März 2002 02:13 schrieb Andrew Bartlett:
> > Can you look at doing these without using fstrings all over the place?
> > We are trying (slowly, painfully) to move to allocated buffers.  We have
> > some 'convert and allocate' functions that might do what you want - or
> > you could add a convert and talloc() version if that makes it easier.
> >
> 
> Now this is somehow more a political issue than an implementation problem.
> I can use talloc() at some locations where a TALLOC_CTX is already available,
> but in other cases it seems more straightforward to use malloc() like this:
> 
>         utf8_field=malloc(2*strlen(field));
>         push_utf8(utf8_field,field,2*strlen(field));
>         ...
>         SAFE_FREE(utf8_field);
> 
> Alternatively I can do:
> 
>         utf8_field=push_utf8_allocate(field);
>         ...
>         SAFE_FREE(utf8_field);

This looks the prefereable choice, but use the existing
'convert_string_allocate' function.

> Using something like this:
> char *push_utf8_allocate(const char *src)
> {
>         int src_len = strlen(src);
>         char *pb;
> 
>         pb = malloc(2*src_len);
>         if (pb==NULL)
>                 return -1;
>         push_utf8(pb, src, 2*src_len, STR_TERMINATE);
>         return realloc(pb,strlen(pb));
> }

The existing function is a bit better with memory allocation, but thats
the basic idea.  If you want to add a 'convert_string_talloc' it would
probably be quite useful, but otherwise, malloc()/SAFE_FREE() should be
fine.

Andrew Bartlett

-- 
Andrew Bartlett                                 abartlet at pcug.org.au
Manager, Authentication Subsystems, Samba Team  abartlet at samba.org
Student Network Administrator, Hawker College   abartlet at hawkerc.net
http://samba.org     http://build.samba.org     http://hawkerc.net




More information about the samba-technical mailing list