From: Tobias Brunner Date: Mon, 8 Oct 2012 09:15:35 +0000 (+0200) Subject: Copy the name of pkcs11_library_t objects X-Git-Tag: 5.0.2dr4~349 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ca1c2ee2813ad0f7f15724b216549c3fc1c9ac11;p=thirdparty%2Fstrongswan.git Copy the name of pkcs11_library_t objects Strings returned by settings_t.create_section_enumerator will be freed when the config is reloaded. --- diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_library.c b/src/libstrongswan/plugins/pkcs11/pkcs11_library.c index 97c3d2fcf2..0d89a97eb4 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_library.c +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_library.c @@ -895,6 +895,7 @@ METHOD(pkcs11_library_t, destroy, void, { this->public.f->C_Finalize(NULL); dlclose(this->handle); + free(this->name); free(this); } @@ -1077,7 +1078,7 @@ pkcs11_library_t *pkcs11_library_create(char *name, char *file, bool os_locking) .get_ck_attribute = _get_ck_attribute, .destroy = _destroy, }, - .name = name, + .name = strdup(name), .handle = dlopen(file, RTLD_LAZY), ); diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_library.h b/src/libstrongswan/plugins/pkcs11/pkcs11_library.h index e76e65e07a..50ed036ac9 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_library.h +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_library.h @@ -161,7 +161,7 @@ void pkcs11_library_trim(char *str, int len); /** * Create a pkcs11_library instance. * - * @param name an arbitrary name, for debugging + * @param name an arbitrary name (for debugging), cloned * @param file pkcs11 library file to dlopen() * @param os_lock enforce OS Locking for this library * @return library abstraction