aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-http.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2018-08-31 23:00:44 +0200
committerAnders Broman <a.broman58@gmail.com>2018-09-03 04:05:13 +0000
commit65b342f7497825c2abc4e98c7fd9f4ff6d8ed45c (patch)
tree3746e1055e28476a4b8ba30df6996fcd16b636c1 /epan/dissectors/packet-http.c
parent42ad60896da6655d89c4e220a36766f121cdb856 (diff)
epan: Use g_base64_decode_inplace()
Replace ws_base64_decode_inplace() with g_base64_decode_inplace() or g_base64_decode(), which was introduced in glib 2.12. The only observed difference is a need for zero-terminate the buffer after decoding. Change-Id: Ia102d0d8e9bec575ffeddf448191a3f6de9fb1ed Reviewed-on: https://code.wireshark.org/review/29382 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-http.c')
-rw-r--r--epan/dissectors/packet-http.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 5f16071321..b481c86713 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -34,7 +34,6 @@
#include <epan/proto_data.h>
#include <epan/export_object.h>
-#include <wsutil/base64.h>
#include "packet-http.h"
#include "packet-tcp.h"
#include "packet-ssl.h"
@@ -3311,6 +3310,7 @@ check_auth_basic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value)
const char **header;
size_t hdrlen;
proto_tree *hdr_tree;
+ gsize len;
for (header = &basic_headers[0]; *header != NULL; header++) {
hdrlen = strlen(*header);
@@ -3322,7 +3322,8 @@ check_auth_basic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value)
hdr_tree = NULL;
value += hdrlen;
- ws_base64_decode_inplace(value);
+ g_base64_decode_inplace(value, &len);
+ value[len] = 0;
proto_tree_add_string(hdr_tree, hf_http_basic, tvb,
0, 0, value);
@@ -3350,6 +3351,7 @@ check_auth_citrixbasic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value, int of
char *data_val;
proto_item *hidden_item;
proto_item *pi;
+ gsize len;
for (header = &basic_headers[0]; *header != NULL; header++) {
hdrlen = strlen(*header);
@@ -3372,7 +3374,8 @@ check_auth_citrixbasic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value, int of
if ( ch_ptr != NULL ) {
data_len = (int)(ch_ptr - value + 1);
data_val = wmem_strndup(wmem_packet_scope(), value, data_len);
- ws_base64_decode_inplace(data_val);
+ g_base64_decode_inplace(data_val, &len);
+ data_val[len] = 0;
pi = proto_tree_add_string(hdr_tree, hf_http_citrix_user, tvb,
offset , data_len - 1, data_val);
PROTO_ITEM_SET_GENERATED(pi);
@@ -3387,7 +3390,8 @@ check_auth_citrixbasic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value, int of
if ( ch_ptr != NULL ) {
data_len = (int)(ch_ptr - value + 1);
data_val = wmem_strndup(wmem_packet_scope(), value, data_len);
- ws_base64_decode_inplace(data_val);
+ g_base64_decode_inplace(data_val, &len);
+ data_val[len] = 0;
pi = proto_tree_add_string(hdr_tree, hf_http_citrix_domain, tvb,
offset, data_len - 1, data_val);
PROTO_ITEM_SET_GENERATED(pi);
@@ -3402,7 +3406,8 @@ check_auth_citrixbasic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value, int of
if ( ch_ptr != NULL ) {
data_len = (int)(ch_ptr - value + 1);
data_val = wmem_strndup(wmem_packet_scope(), value, data_len);
- ws_base64_decode_inplace(data_val);
+ g_base64_decode_inplace(data_val, &len);
+ data_val[len] = 0;
pi = proto_tree_add_string(hdr_tree, hf_http_citrix_passwd, tvb,
offset, data_len - 1, data_val);
PROTO_ITEM_SET_GENERATED(pi);
@@ -3417,7 +3422,8 @@ check_auth_citrixbasic(proto_item *hdr_item, tvbuff_t *tvb, gchar *value, int of
if ( ch_ptr != NULL ) {
data_len = (int)(ch_ptr - value + 1);
data_val = wmem_strndup(wmem_packet_scope(), value, data_len);
- ws_base64_decode_inplace(data_val);
+ g_base64_decode_inplace(data_val, &len);
+ data_val[len] = 0;
pi = proto_tree_add_string(hdr_tree, hf_http_citrix_session, tvb,
offset, data_len - 1, data_val);
PROTO_ITEM_SET_GENERATED(pi);