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@wiggy.net, 6 months ago)
Line 
1 diff --git a/src/centralserver.c b/src/centralserver.c
2 index 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