Fossil

Check-in [df12c1b0]
Login

Check-in [df12c1b0]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix a potential use-after-free problem.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: df12c1b05318862f0c78fb86591c1850e059853e
User & Date: drh 2015-05-07 19:50:03
Context
2015-05-08
15:31
Improvements to the build and TH1 scripting docs. ... (check-in: 901427f5 user: mistachkin tags: trunk)
2015-05-07
19:50
Merge fixes from trunk ... (check-in: bf0b3098 user: drh tags: piechart)
19:50
Fix a potential use-after-free problem. ... (check-in: df12c1b0 user: drh tags: trunk)
12:31
Change the built-in SQLite to version 3.8.10. ... (check-in: abc38398 user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/http.c.

336
337
338
339
340
341
342
343
344
345
346


347
348
349
350
351
352
353
        goto write_err;
      }
      j = strlen(zLine) - 1;
      while( j>4 && fossil_strcmp(&zLine[j-4],"/xfer")==0 ){
         j -= 4;
         zLine[j] = 0;
      }
      transport_close(&g.url);
      transport_global_shutdown(&g.url);
      fossil_print("redirect with status %d to %s\n", rc, &zLine[i]);
      url_parse(&zLine[i], 0);


      fSeenHttpAuth = 0;
      if( g.zHttpAuth ) free(g.zHttpAuth);
      g.zHttpAuth = get_httpauth();
      return http_exchange(pSend, pReply, useLogin, maxRedirect);
    }else if( fossil_strnicmp(zLine, "content-type: ", 14)==0 ){
      if( fossil_strnicmp(&zLine[14], "application/x-fossil-debug", -1)==0 ){
        isCompressed = 0;







<
<


>
>







336
337
338
339
340
341
342


343
344
345
346
347
348
349
350
351
352
353
        goto write_err;
      }
      j = strlen(zLine) - 1;
      while( j>4 && fossil_strcmp(&zLine[j-4],"/xfer")==0 ){
         j -= 4;
         zLine[j] = 0;
      }


      fossil_print("redirect with status %d to %s\n", rc, &zLine[i]);
      url_parse(&zLine[i], 0);
      transport_close(&g.url);
      transport_global_shutdown(&g.url);
      fSeenHttpAuth = 0;
      if( g.zHttpAuth ) free(g.zHttpAuth);
      g.zHttpAuth = get_httpauth();
      return http_exchange(pSend, pReply, useLogin, maxRedirect);
    }else if( fossil_strnicmp(zLine, "content-type: ", 14)==0 ){
      if( fossil_strnicmp(&zLine[14], "application/x-fossil-debug", -1)==0 ){
        isCompressed = 0;