diff options
author | Chia-chi Yeh <chiachi@android.com> | 2009-09-20 20:46:44 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-09-20 20:46:44 -0700 |
commit | ee46392362e5242809b4337700cc5660086f8f80 (patch) | |
tree | 7dc75d660df683f74a135126418fdfc3c35d3869 | |
parent | a1e794f5b96ac2b877e38f205a8e4922bbecad75 (diff) | |
parent | d5170539a3a845498356692538ba0846cb1fc84e (diff) | |
download | wpa_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.c | 22 |
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) { |