[PATCH 2/2] erofs-utils: lib: oci: restrict `ocierofs_io_open()` to single-layer images
Gao Xiang
hsiangkao at linux.alibaba.com
Tue Dec 16 18:23:19 AEDT 2025
On 2025/12/16 16:05, Yifan Zhao wrote:
> When mounting an OCI image with `mount.erofs -t erofs.nbd` without
> specifying either `oci.layer=` or `oci.blob=`, a segfault occurs in the
> `ocierofs_download_blob_range() → ocierofs_find_layer_by_digest()` call
> path due to an empty `ctx->blob_digest`.
>
> As mounting multi-layer OCI images is not yet supported, let's exit
> early in `ocierofs_io_open()` with an error in this case.
>
> Signed-off-by: Yifan Zhao <zhaoyifan28 at huawei.com>
> ---
> lib/remotes/oci.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/lib/remotes/oci.c b/lib/remotes/oci.c
> index d5afd6a..ce7a1a5 100644
> --- a/lib/remotes/oci.c
> +++ b/lib/remotes/oci.c
> @@ -1479,16 +1479,18 @@ int ocierofs_io_open(struct erofs_vfile *vfile, const struct ocierofs_config *cf
> return -ENOMEM;
>
> err = ocierofs_init(ctx, cfg);
> - if (err) {
> - free(ctx);
> - return err;
> + if (err)
> + goto out;
> +
> + if (!ctx->blob_digest) {
> + err = -EINVAL;
Is it possible to add a dedicated error message for this case?
Thanks,
Gao Xiang
More information about the Linux-erofs
mailing list