diff --git a/kernel/mars_bio.c b/kernel/mars_bio.c index dde4732d..87641dc7 100644 --- a/kernel/mars_bio.c +++ b/kernel/mars_bio.c @@ -294,6 +294,9 @@ static int bio_ref_get(struct bio_output *output, struct mref_object *mref) if (!mref->ref_data) { // buffered IO. + if (unlikely(mref->ref_len <= 0)) { + goto done; + } status = -ENOMEM; mref->ref_data = brick_block_alloc(mref->ref_pos, (mref_a->alloc_len = mref->ref_len)); if (unlikely(!mref->ref_data)) {