On 10/19/2010 08:23 AM, Matthias Bolte wrote:
strdup() is nothing more than malloc() followed by strcpy();
See [1] for more details. When I understood Arnaud correctly then passing the result of Marshal.StringToHGlobalAuto() directly as cred.result didn't work, but passing the result from strdup() works.
Thanks for the reminder. I'm not very familiar with C# myself, but I do agree with the analysis that Windows memory management is not always straight-forward, since there is more than just the malloc() pool, and therefore strdup() is not necessarily a trivial operation since it determines which memory pool is in use. Sorry if my previous message came across harsher than intended (now that I've gone back and re-read it).
Marshal.StringToHGlobalAuto() + strdup() just works for now but is ugly. Arnaud said that he is working on a better approach for this (custom marshaling), that doesn't require strdup().
Good luck with it, and thanks again to Arnaud for taking on the task of a new language binding.
-- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list