mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-27 16:20:34 +01:00
lldp: backslash escape untrusted chassis-id,port-id strings
This is a serious issue, because this is not guaranteed to be UTF-8 data. Fixes:07a9364d9c('device: export list of LLDP neighbors through D-Bus') (cherry picked from commit8cd9b87c91) (cherry picked from commit94f8e9fbdc) (cherry picked from commit90b1df4754)
This commit is contained in:
parent
5838f82707
commit
db7070c59d
1 changed files with 4 additions and 2 deletions
|
|
@ -531,7 +531,8 @@ lldp_neighbor_new (sd_lldp_neighbor *neighbor_sd, GError **error)
|
|||
case SD_LLDP_CHASSIS_SUBTYPE_INTERFACE_NAME:
|
||||
case SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED:
|
||||
case SD_LLDP_CHASSIS_SUBTYPE_CHASSIS_COMPONENT:
|
||||
neigh->chassis_id = g_strndup ((const char *) chassis_id, chassis_id_len);
|
||||
neigh->chassis_id = nm_utils_buf_utf8safe_escape_cp (chassis_id, chassis_id_len, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL | NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII)
|
||||
?: g_new0 (char, 1);
|
||||
break;
|
||||
case SD_LLDP_CHASSIS_SUBTYPE_MAC_ADDRESS:
|
||||
neigh->chassis_id = nm_utils_hwaddr_ntoa (chassis_id, chassis_id_len);
|
||||
|
|
@ -547,7 +548,8 @@ lldp_neighbor_new (sd_lldp_neighbor *neighbor_sd, GError **error)
|
|||
case SD_LLDP_PORT_SUBTYPE_INTERFACE_NAME:
|
||||
case SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED:
|
||||
case SD_LLDP_PORT_SUBTYPE_PORT_COMPONENT:
|
||||
neigh->port_id = strndup ((char *) port_id, port_id_len);
|
||||
neigh->port_id = nm_utils_buf_utf8safe_escape_cp (port_id, port_id_len, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL | NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII)
|
||||
?: g_new0 (char, 1);
|
||||
break;
|
||||
case SD_LLDP_PORT_SUBTYPE_MAC_ADDRESS:
|
||||
neigh->port_id = nm_utils_hwaddr_ntoa (port_id, port_id_len);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue