Simpler overflow check.

This commit is contained in:
Calvin Rose 2021-01-29 20:11:38 -06:00
parent 9aed578466
commit 04805d106e
2 changed files with 8 additions and 10 deletions

View File

@ -91,9 +91,7 @@ void janet_buffer_extra(JanetBuffer *buffer, int32_t n) {
}
int32_t new_size = buffer->count + n;
if (new_size > buffer->capacity) {
size_t new_capacity_sizet = (size_t) (new_size) * 2;
if (new_capacity_sizet > INT32_MAX) new_capacity_sizet = INT32_MAX;
int32_t new_capacity = (int32_t) new_capacity_sizet;
int32_t new_capacity = (new_size > (INT32_MAX / 2)) ? INT32_MAX : (new_size * 2);
uint8_t *new_data = realloc(buffer->data, new_capacity * sizeof(uint8_t));
janet_gcpressure(new_capacity - buffer->capacity);
if (NULL == new_data) {

View File

@ -398,13 +398,13 @@ static void janet_stream_marshal(void *p, JanetMarshalContext *ctx) {
duph = s->handle;
} else {
DuplicateHandle(
GetCurrentProcess(),
s->handle,
GetCurrentProcess(),
&duph,
0,
FALSE,
DUPLICATE_SAME_ACCESS);
GetCurrentProcess(),
s->handle,
GetCurrentProcess(),
&duph,
0,
FALSE,
DUPLICATE_SAME_ACCESS);
}
janet_marshal_int64(ctx, (int64_t)(duph));
#else