Avoid plain malloc()/free() in sr/srd, especially in the API calls.
Also avoid g_malloc*() in favor of g_try_malloc*().
Use g_strdup() instead of strdup() so that we can use g_free()
consistently everywhere.
Exceptions: Stuff that is allocated via other libs (not using glib),
should also be properly free'd using the respective free-ing function
(instead of g_free()). Examples: Stuff allocated by libusb, libftdi, etc.
Also, use sr_err() instead of sr_warn() for actual errors. sr_warn() is
meant for non-fatal/uncritical warnings.
/**
* Convert a Python list of unicode strings to a NULL-terminated UTF8-encoded
- * char * array. The caller must free each string when finished.
+ * char * array. The caller must g_free() each string when finished.
*
* @param py_strlist The list object.
* @param outstr ptr to char ** storage to be filled in.