mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Catch more possible instances of passing NULL to memcpy.
Actually fixes #1976.
This commit is contained in:
parent
d25d9f7cec
commit
cfdbfa6b2c
3 changed files with 10 additions and 4 deletions
|
@ -1601,12 +1601,16 @@ static void prim_partition(EvalState & state, const Pos & pos, Value * * args, V
|
|||
state.mkAttrs(v, 2);
|
||||
|
||||
Value * vRight = state.allocAttr(v, state.sRight);
|
||||
state.mkList(*vRight, right.size());
|
||||
memcpy(vRight->listElems(), right.data(), sizeof(Value *) * right.size());
|
||||
auto rsize = right.size();
|
||||
state.mkList(*vRight, rsize);
|
||||
if (rsize)
|
||||
memcpy(vRight->listElems(), right.data(), sizeof(Value *) * rsize);
|
||||
|
||||
Value * vWrong = state.allocAttr(v, state.sWrong);
|
||||
state.mkList(*vWrong, wrong.size());
|
||||
memcpy(vWrong->listElems(), wrong.data(), sizeof(Value *) * wrong.size());
|
||||
auto wsize = wrong.size();
|
||||
state.mkList(*vWrong, wsize);
|
||||
if (wsize)
|
||||
memcpy(vWrong->listElems(), wrong.data(), sizeof(Value *) * wsize);
|
||||
|
||||
v.attrs->sort();
|
||||
}
|
||||
|
|
|
@ -195,6 +195,7 @@ struct CurlDownloader : public Downloader
|
|||
if (readOffset == request.data->length())
|
||||
return 0;
|
||||
auto count = std::min(size * nitems, request.data->length() - readOffset);
|
||||
assert(count);
|
||||
memcpy(buffer, request.data->data() + readOffset, count);
|
||||
readOffset += count;
|
||||
return count;
|
||||
|
|
|
@ -191,6 +191,7 @@ Hash::Hash(const std::string & s, HashType type)
|
|||
auto d = base64Decode(std::string(s, pos));
|
||||
if (d.size() != hashSize)
|
||||
throw BadHash("invalid base-64 hash '%s'", s);
|
||||
assert(hashSize);
|
||||
memcpy(hash, d.data(), hashSize);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue