Ticket #10468: 450-httpd_enable_partial_zero_start.patch

File 450-httpd_enable_partial_zero_start.patch, 1.4 KB (added by m.storchak@…, 6 years ago)
  • networking/httpd.c

    diff -Naur busybox-1.19.3.orig/networking/httpd.c busybox-1.19.3/networking/httpd.c
    old new  
    292292        off_t range_start; 
    293293        off_t range_end; 
    294294        off_t range_len; 
     295        smallint range_present; 
    295296#endif 
    296297 
    297298#if ENABLE_FEATURE_HTTPD_BASIC_AUTH 
     
    343344#define range_start       (G.range_start      ) 
    344345#define range_end         (G.range_end        ) 
    345346#define range_len         (G.range_len        ) 
     347#define range_present     (G.range_present    ) 
    346348#else 
    347349enum { 
    348350        range_start = 0, 
     
    16581660                range_start = 0; 
    16591661        } 
    16601662        range_len = MAXINT(off_t); 
    1661         if (range_start) { 
     1663        if (range_start || range_present) { 
    16621664                if (!range_end) { 
    16631665                        range_end = file_size - 1; 
    16641666                } 
     
    18881890#endif 
    18891891        xchdir(home_httpd); 
    18901892 
     1893#if ENABLE_FEATURE_HTTPD_RANGES 
     1894        range_present=0; 
     1895#endif 
    18911896        /* Allocation of iobuf is postponed until now 
    18921897         * (IOW, server process doesn't need to waste 8k) */ 
    18931898        iobuf = xmalloc(IOBUF_SIZE); 
     
    21232128                        if (STRNCASECMP(iobuf, "Range:") == 0) { 
    21242129                                /* We know only bytes=NNN-[MMM] */ 
    21252130                                char *s = skip_whitespace(iobuf + sizeof("Range:")-1); 
     2131                                range_present=1; 
    21262132                                if (strncmp(s, "bytes=", 6) == 0) { 
    21272133                                        s += sizeof("bytes=")-1; 
    21282134                                        range_start = BB_STRTOOFF(s, &s, 10);