aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-chi Yeh <chiachi@android.com>2009-09-20 20:46:44 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2009-09-20 20:46:44 -0700
commitee46392362e5242809b4337700cc5660086f8f80 (patch)
tree7dc75d660df683f74a135126418fdfc3c35d3869
parenta1e794f5b96ac2b877e38f205a8e4922bbecad75 (diff)
parentd5170539a3a845498356692538ba0846cb1fc84e (diff)
downloadwpa_supplicant-ee46392362e5242809b4337700cc5660086f8f80.tar.gz
am d5170539: wpa_supplicant: switch to multi-user keystore.
Merge commit 'd5170539a3a845498356692538ba0846cb1fc84e' into eclair-plus-aosp * commit 'd5170539a3a845498356692538ba0846cb1fc84e': wpa_supplicant: switch to multi-user keystore.
-rw-r--r--eap_tls_common.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/eap_tls_common.c b/eap_tls_common.c
index bf9bf9c..2532b7b 100644
--- a/eap_tls_common.c
+++ b/eap_tls_common.c
@@ -64,8 +64,8 @@ static void free_temporal_blobs()
while (p != NULL) {
struct temporal_blobs *q = p;
p = p->next;
- if (q->blob) free(q->blob);
- free(q);
+ if (q->blob) os_free(q->blob);
+ os_free(q);
}
ks_blobs = NULL;
}
@@ -140,7 +140,7 @@ err:
if (cert) X509_free(cert);
if (pkey) EVP_PKEY_free(pkey);
if (buf) {
- free(blob->data);
+ os_free(blob->data);
blob->data = buf;
blob->len = len;
}
@@ -148,17 +148,19 @@ err:
struct wpa_config_blob *get_blob_from_keystore(const char *name)
{
- int len;
- char *buf = keystore_get((char*)name, &len);
+ char buf[KEYSTORE_MESSAGE_SIZE];
+ int len = keystore_get(name, buf);
struct wpa_config_blob *blob = NULL;
- if (buf) {
- if ((blob = os_zalloc(sizeof(*blob))) != NULL) {
+ if (len != -1) {
+ if ((blob = os_zalloc(sizeof(*blob))) != NULL &&
+ (blob->data = os_zalloc(len + 1)) != NULL) {
blob->name = os_strdup(name);
- blob->data = (unsigned char*)buf;
+ memcpy(blob->data, buf, len);
blob->len = len;
- } else {
- free(buf);
+ } else if (blob) {
+ os_free(blob);
+ blob = NULL;
}
}
if (blob) {