Skip to content

Commit 080c9b8

Browse files
committed
Add check for buffer bound
1 parent 52663a8 commit 080c9b8

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

c_src/zstd_nif.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,12 @@ static ERL_NIF_TERM zstd_nif_compress_stream(ErlNifEnv* env, int argc, const ERL
250250
return enif_make_tuple2(env, zstd_atom_error, zstd_atom_invalid);
251251

252252
/* all output binary buffer */
253-
if (!(enif_alloc_binary(ZSTD_compressBound(in.size), &out))) {
253+
size_t buffer_size = ZSTD_compressBound(in.size);
254+
if(ZSTD_isError(buffer_size)) {
255+
enif_release_binary(&in);
256+
return enif_make_tuple2(env, zstd_atom_error, enif_make_string(env, ZSTD_getErrorName(buffer_size), ERL_NIF_LATIN1));
257+
}
258+
if (!(enif_alloc_binary(buffer_size, &out))) {
254259
enif_release_binary(&in);
255260
return enif_make_tuple2(env, zstd_atom_error, zstd_atom_enomem);
256261
}

0 commit comments

Comments
 (0)