From a13d1b50c93802b9ce6be8dac0fec53545656ef7 Mon Sep 17 00:00:00 2001 From: Oliver Joos Date: Fri, 27 Nov 2020 11:09:16 +0100 Subject: [PATCH] extmod/vfs: Raise OSError(ENODEV) if mounting bdev without a filesystem. This commit prevents uos.mount() from raising an AttributeError. vfs_autodetect() is supposed to return an object that has a "mount" method, so if no filesystem is found it should raise an OSError(ENODEV) and not return the bdev itself which has no "mount" method. --- extmod/vfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extmod/vfs.c b/extmod/vfs.c index 3cb7af1b43..7dca59d351 100644 --- a/extmod/vfs.c +++ b/extmod/vfs.c @@ -191,7 +191,8 @@ STATIC mp_obj_t mp_vfs_autodetect(mp_obj_t bdev_obj) { return mp_fat_vfs_type.make_new(&mp_fat_vfs_type, 1, 0, &bdev_obj); #endif - return bdev_obj; + // no filesystem found + mp_raise_OSError(MP_ENODEV); } mp_obj_t mp_vfs_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {