other-licenses/7zstub/src/7zip/Archive/Common/OutStreamWithCRC.cpp

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 // OutStreamWithCRC.cpp
     3 #include "StdAfx.h"
     5 #include "OutStreamWithCRC.h"
     7 STDMETHODIMP COutStreamWithCRC::Write(const void *data, 
     8     UInt32 size, UInt32 *processedSize)
     9 {
    10   UInt32 realProcessedSize;
    11   HRESULT result;
    12   if(!_stream)
    13   {
    14     realProcessedSize = size;
    15     result = S_OK;
    16   }
    17   else
    18     result = _stream->Write(data, size, &realProcessedSize);
    19   _crc.Update(data, realProcessedSize);
    20   if(processedSize != NULL)
    21     *processedSize = realProcessedSize;
    22   return result;
    23 }

mercurial