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.
pull/6702/head
Oliver Joos 2020-11-27 11:09:16 +01:00 zatwierdzone przez Damien George
rodzic dc1fd4df73
commit a13d1b50c9
1 zmienionych plików z 2 dodań i 1 usunięć

Wyświetl plik

@ -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) {