mirror of
https://github.com/ipxe/ipxe
synced 2025-12-16 01:21:10 +03:00
[settings] Explicitly separate the concept of a completed fetched setting
The fetch_setting() family of functions may currently modify the definition of the specified setting (e.g. to add missing type information). Clean up this interface by requiring callers to provide an explicit buffer to contain the completed definition of the fetched setting, if required. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -128,8 +128,8 @@ static int clientcert_apply_settings ( void ) {
|
||||
|
||||
/* Fetch new client certificate, if any */
|
||||
free ( cert );
|
||||
if ( ( len = fetch_setting_copy ( NULL, &cert_setting,
|
||||
&cert ) ) >= 0 ) {
|
||||
if ( ( len = fetch_raw_setting_copy ( NULL, &cert_setting,
|
||||
&cert ) ) >= 0 ) {
|
||||
client_certificate.data = cert;
|
||||
client_certificate.len = len;
|
||||
}
|
||||
@@ -140,8 +140,8 @@ static int clientcert_apply_settings ( void ) {
|
||||
|
||||
/* Fetch new client private key, if any */
|
||||
free ( key );
|
||||
if ( ( len = fetch_setting_copy ( NULL, &privkey_setting,
|
||||
&key ) ) >= 0 ) {
|
||||
if ( ( len = fetch_raw_setting_copy ( NULL, &privkey_setting,
|
||||
&key ) ) >= 0 ) {
|
||||
client_private_key.data = key;
|
||||
client_private_key.len = len;
|
||||
}
|
||||
|
||||
@@ -100,8 +100,8 @@ static void rootcert_init ( void ) {
|
||||
/* Fetch copy of "trust" setting, if it exists. This
|
||||
* memory will never be freed.
|
||||
*/
|
||||
if ( ( len = fetch_setting_copy ( NULL, &trust_setting,
|
||||
&external ) ) >= 0 ) {
|
||||
if ( ( len = fetch_raw_setting_copy ( NULL, &trust_setting,
|
||||
&external ) ) >= 0 ) {
|
||||
root_certificates.fingerprints = external;
|
||||
root_certificates.count = ( len / FINGERPRINT_LEN );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user