Ticket #473: 0001-escape-token-before-sending-to-auth-server

File 0001-escape-token-before-sending-to-auth-server, 1.2 KB (added by wichert@…, 4 years ago)
Line 
1diff --git a/src/centralserver.c b/src/centralserver.c
2index 50edf2a..e18bd67 100644
3--- a/src/centralserver.c
4+++ b/src/centralserver.c
5@@ -69,6 +69,7 @@ auth_server_request(t_authresponse *authresponse, const char *request_type, cons
6        size_t totalbytes;
7        char buf[MAX_BUF];
8        char *tmp;
9+        char *safe_token;
10        int done, nfds;
11        fd_set                  readfds;
12        struct timeval          timeout;
13@@ -89,6 +90,7 @@ auth_server_request(t_authresponse *authresponse, const char *request_type, cons
14         * everywhere.
15         */
16        memset(buf, 0, sizeof(buf));
17+        safe_token=httpdUrlEncode(token);
18        snprintf(buf, (sizeof(buf) - 1),
19                "GET %s%sstage=%s&ip=%s&mac=%s&token=%s&incoming=%llu&outgoing=%llu&gw_id=%s HTTP/1.0\r\n"
20                "User-Agent: WiFiDog %s\r\n"
21@@ -99,7 +101,7 @@ auth_server_request(t_authresponse *authresponse, const char *request_type, cons
22                request_type,
23                ip,
24                mac,
25-               token,
26+               safe_token,
27                incoming,
28                outgoing,
29                 config_get_config()->gw_id,
30@@ -107,6 +109,8 @@ auth_server_request(t_authresponse *authresponse, const char *request_type, cons
31                auth_server->authserv_hostname
32        );
33 
34+        free(safe_token);
35+
36        debug(LOG_DEBUG, "Sending HTTP request to auth server: [%s]\n", buf);
37        send(sockfd, buf, strlen(buf), 0);
38