session: ignore non-string username attribute upon restore
When restoring session information from blob data, only consider the embedded username attribute if it is a string value. Other types may cause invalid memory accesses when attempting to strcmp() the attribute value. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
3d400c723b
commit
eb09f3a3fd
1 changed files with 3 additions and 0 deletions
|
@ -1288,6 +1288,9 @@ rpc_session_from_blob(struct uci_context *uci, struct blob_attr *attr)
|
||||||
blobmsg_for_each_attr(data, tb[RPC_DUMP_DATA], rem) {
|
blobmsg_for_each_attr(data, tb[RPC_DUMP_DATA], rem) {
|
||||||
rpc_session_set(ses, data);
|
rpc_session_set(ses, data);
|
||||||
|
|
||||||
|
if (blobmsg_type(data) != BLOBMSG_TYPE_STRING)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!strcmp(blobmsg_name(data), "username"))
|
if (!strcmp(blobmsg_name(data), "username"))
|
||||||
user = blobmsg_get_string(data);
|
user = blobmsg_get_string(data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue