mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 04:50:25 +03:00
[base16] Add buffer size parameter to base16_encode() and base16_decode()
The current API for Base16 (and Base64) encoding requires the caller to always provide sufficient buffer space. This prevents the use of the generic encoding/decoding functionality in some situations, such as in formatting the hex setting types. Implement a generic hex_encode() (based on the existing format_hex_setting()), implement base16_encode() and base16_decode() in terms of the more generic hex_encode() and hex_decode(), and update all callers to provide the additional buffer length parameter. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -105,7 +105,7 @@ int ecm_fetch_mac ( struct usb_device *usb,
|
||||
return -EINVAL;
|
||||
|
||||
/* Decode MAC address */
|
||||
len = base16_decode ( buf, hw_addr );
|
||||
len = base16_decode ( buf, hw_addr, ETH_ALEN );
|
||||
if ( len < 0 ) {
|
||||
rc = len;
|
||||
return rc;
|
||||
|
||||
@@ -139,7 +139,7 @@ static int netfront_read_mac ( struct netfront_nic *netfront, void *hw_addr ) {
|
||||
xendev->key, mac );
|
||||
|
||||
/* Decode MAC address */
|
||||
len = hex_decode ( mac, ':', hw_addr, ETH_ALEN );
|
||||
len = hex_decode ( ':', mac, hw_addr, ETH_ALEN );
|
||||
if ( len < 0 ) {
|
||||
rc = len;
|
||||
DBGC ( netfront, "NETFRONT %s could not decode MAC address "
|
||||
|
||||
Reference in New Issue
Block a user