Fixed pcap capture function const correctness
authorArmin Novak <armin.novak@thincast.com>
Mon, 18 Jan 2021 08:25:03 +0000 (09:25 +0100)
committerakallabeth <akallabeth@users.noreply.github.com>
Thu, 25 Feb 2021 08:51:41 +0000 (09:51 +0100)
(cherry picked from commit 87e89bc719110ea369ae431e12f4e91f99cc9304)

include/freerdp/utils/pcap.h
libfreerdp/utils/pcap.c

index 4b23343..43ce42f 100644 (file)
@@ -49,7 +49,11 @@ typedef struct _pcap_record pcap_record;
 struct _pcap_record
 {
        pcap_record_header header;
-       void* data;
+       union
+       {
+               void* data;
+               const void* cdata;
+       };
        UINT32 length;
        pcap_record* next;
 };
@@ -76,7 +80,7 @@ extern "C"
        FREERDP_API rdpPcap* pcap_open(char* name, BOOL write);
        FREERDP_API void pcap_close(rdpPcap* pcap);
 
-       FREERDP_API BOOL pcap_add_record(rdpPcap* pcap, void* data, UINT32 length);
+       FREERDP_API BOOL pcap_add_record(rdpPcap* pcap, const void* data, UINT32 length);
        FREERDP_API BOOL pcap_has_next_record(rdpPcap* pcap);
        FREERDP_API BOOL pcap_get_next_record(rdpPcap* pcap, pcap_record* record);
        FREERDP_API BOOL pcap_get_next_record_header(rdpPcap* pcap, pcap_record* record);
index 6f6ed25..9233910 100644 (file)
@@ -95,10 +95,10 @@ static BOOL pcap_read_record(rdpPcap* pcap, pcap_record* record)
 static BOOL pcap_write_record(rdpPcap* pcap, pcap_record* record)
 {
        return pcap_write_record_header(pcap, &record->header) &&
-              (fwrite(record->data, record->length, 1, pcap->fp) == 1);
+              (fwrite(record->cdata, record->length, 1, pcap->fp) == 1);
 }
 
-BOOL pcap_add_record(rdpPcap* pcap, void* data, UINT32 length)
+BOOL pcap_add_record(rdpPcap* pcap, const void* data, UINT32 length)
 {
        pcap_record* record;
        struct timeval tp;
@@ -126,7 +126,7 @@ BOOL pcap_add_record(rdpPcap* pcap, void* data, UINT32 length)
        if (pcap->record == NULL)
                pcap->record = record;
 
-       record->data = data;
+       record->cdata = data;
        record->length = length;
        record->header.incl_len = length;
        record->header.orig_len = length;