Changeset 32711


Ignore:
Timestamp:
Jul 16, 2017, 2:05:05 PM (4 days ago)
Author:
brainslayer
Message:

handle errors in header

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/httpd/httpd.c

    r32710 r32711  
    593593        char *buf = line;
    594594        int lastread = 0;
     595        int finished = 0;
    595596        for (;;) {
    596597
     
    602603                buf += r;
    603604                lastread += r;
    604                 if (strstr(line, "\015\012\015\012") != (char *)0 || strstr(line, "\012\012") != (char *)0)
     605                if (strstr(line, "\015\012\015\012") != (char *)0 || strstr(line, "\012\012") != (char *)0) {
     606                        finished = 1;
    605607                        break;
    606         }
    607 
    608         if (!strlen(line)) {
     608                }
     609        }
     610
     611        if (!strlen(line) || !finished) {
    609612                send_error(conn_fp, 408, "Request Timeout", NULL, "No request appeared within a reasonable time period.");
    610613                goto out;
     
    639642        while (cur < (line + LINE_LEN)) //jimmy,https,8/4/2003
    640643        {
    641 
    642644                if (strcmp(cur, "\n") == 0 || strcmp(cur, "\r\n") == 0) {
    643645                        break;
     
    677679                        language = cp;
    678680                        cur = cp + strlen(cp) + 1;
     681                } else {
     682                        // skip line                   
     683                        for (cp = cur; *cp && *cp != '\n'; cp++) ;
     684                        *cp = '\0';
     685                        cur = ++cp;
     686
    679687                }
    680688        }
Note: See TracChangeset for help on using the changeset viewer.