diff options
| author | 2018-11-28 18:17:24 +0800 | |
|---|---|---|
| committer | 2018-11-29 00:26:02 +0100 | |
| commit | 9a93f8727414c33f9efa5448b468533a347cf519 (patch) | |
| tree | 49465e2306bba281de41784aa8abdd74c6251172 /src | |
| parent | 1cc8b343a4bc9320758c78e187b13bb3c9029f12 (diff) | |
| download | usbmuxd-9a93f8727414c33f9efa5448b468533a347cf519.tar.gz usbmuxd-9a93f8727414c33f9efa5448b468533a347cf519.tar.bz2 | |
client: Fix Use-after-Free in handling of SavePairRecord message when reading device id
Diffstat (limited to 'src')
| -rw-r--r-- | src/client.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/client.c b/src/client.c index c566d8c..3472e6e 100644 --- a/src/client.c +++ b/src/client.c | |||
| @@ -750,7 +750,6 @@ static int client_command(struct mux_client *client, struct usbmuxd_header *hdr) | |||
| 750 | if (rdata && plist_get_node_type(rdata) == PLIST_DATA) { | 750 | if (rdata && plist_get_node_type(rdata) == PLIST_DATA) { |
| 751 | plist_get_data_val(rdata, &record_data, &record_size); | 751 | plist_get_data_val(rdata, &record_data, &record_size); |
| 752 | } | 752 | } |
| 753 | plist_free(dict); | ||
| 754 | 753 | ||
| 755 | if (record_id && record_data) { | 754 | if (record_id && record_data) { |
| 756 | res = config_set_device_record(record_id, record_data, record_size); | 755 | res = config_set_device_record(record_id, record_data, record_size); |
| @@ -790,6 +789,7 @@ static int client_command(struct mux_client *client, struct usbmuxd_header *hdr) | |||
| 790 | rval = EINVAL; | 789 | rval = EINVAL; |
| 791 | } | 790 | } |
| 792 | free(record_data); | 791 | free(record_data); |
| 792 | plist_free(dict); | ||
| 793 | if (send_result(client, hdr->tag, rval) < 0) | 793 | if (send_result(client, hdr->tag, rval) < 0) |
| 794 | return -1; | 794 | return -1; |
| 795 | return 0; | 795 | return 0; |
