forked from lix-project/lix
Catch more possible instances of passing NULL to memcpy.
Actually fixes #1976.
This commit is contained in:
parent
d25d9f7cec
commit
cfdbfa6b2c
|
@ -1601,12 +1601,16 @@ static void prim_partition(EvalState & state, const Pos & pos, Value * * args, V
|
||||||
state.mkAttrs(v, 2);
|
state.mkAttrs(v, 2);
|
||||||
|
|
||||||
Value * vRight = state.allocAttr(v, state.sRight);
|
Value * vRight = state.allocAttr(v, state.sRight);
|
||||||
state.mkList(*vRight, right.size());
|
auto rsize = right.size();
|
||||||
memcpy(vRight->listElems(), right.data(), sizeof(Value *) * right.size());
|
state.mkList(*vRight, rsize);
|
||||||
|
if (rsize)
|
||||||
|
memcpy(vRight->listElems(), right.data(), sizeof(Value *) * rsize);
|
||||||
|
|
||||||
Value * vWrong = state.allocAttr(v, state.sWrong);
|
Value * vWrong = state.allocAttr(v, state.sWrong);
|
||||||
state.mkList(*vWrong, wrong.size());
|
auto wsize = wrong.size();
|
||||||
memcpy(vWrong->listElems(), wrong.data(), sizeof(Value *) * wrong.size());
|
state.mkList(*vWrong, wsize);
|
||||||
|
if (wsize)
|
||||||
|
memcpy(vWrong->listElems(), wrong.data(), sizeof(Value *) * wsize);
|
||||||
|
|
||||||
v.attrs->sort();
|
v.attrs->sort();
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,6 +195,7 @@ struct CurlDownloader : public Downloader
|
||||||
if (readOffset == request.data->length())
|
if (readOffset == request.data->length())
|
||||||
return 0;
|
return 0;
|
||||||
auto count = std::min(size * nitems, request.data->length() - readOffset);
|
auto count = std::min(size * nitems, request.data->length() - readOffset);
|
||||||
|
assert(count);
|
||||||
memcpy(buffer, request.data->data() + readOffset, count);
|
memcpy(buffer, request.data->data() + readOffset, count);
|
||||||
readOffset += count;
|
readOffset += count;
|
||||||
return count;
|
return count;
|
||||||
|
|
|
@ -191,6 +191,7 @@ Hash::Hash(const std::string & s, HashType type)
|
||||||
auto d = base64Decode(std::string(s, pos));
|
auto d = base64Decode(std::string(s, pos));
|
||||||
if (d.size() != hashSize)
|
if (d.size() != hashSize)
|
||||||
throw BadHash("invalid base-64 hash '%s'", s);
|
throw BadHash("invalid base-64 hash '%s'", s);
|
||||||
|
assert(hashSize);
|
||||||
memcpy(hash, d.data(), hashSize);
|
memcpy(hash, d.data(), hashSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue