From 9da5cca9b03fa089d2c04a78c78d3bfe08074f65 Mon Sep 17 00:00:00 2001 From: angryproton Date: Mon, 13 Jul 2026 22:36:25 +0800 Subject: [PATCH] =?UTF-8?q?[fix][dfs]=20elmfat=E7=A3=81=E7=9B=98=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E8=AE=BE=E5=A4=87=E6=8C=87=E9=92=88=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c | 6 ++++++ components/dfs/dfs_v2/filesystems/elmfat/dfs_elm.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c b/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c index d72b4852fd0..9631bdfa570 100644 --- a/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c @@ -908,6 +908,9 @@ DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, UINT count) rt_size_t result; rt_device_t device = disk[drv]; + if (device == RT_NULL) + return RES_ERROR; + result = rt_device_read(device, sector, buff, count); if (result == count) { @@ -923,6 +926,9 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count) rt_size_t result; rt_device_t device = disk[drv]; + if (device == RT_NULL) + return RES_ERROR; + result = rt_device_write(device, sector, buff, count); if (result == count) { diff --git a/components/dfs/dfs_v2/filesystems/elmfat/dfs_elm.c b/components/dfs/dfs_v2/filesystems/elmfat/dfs_elm.c index 4d4de5e1230..a477851e7e7 100644 --- a/components/dfs/dfs_v2/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/dfs_v2/filesystems/elmfat/dfs_elm.c @@ -1146,6 +1146,9 @@ DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, UINT count) rt_size_t result; rt_device_t device = disk[drv]; + if (device == RT_NULL) + return RES_ERROR; + result = rt_device_read(device, sector, buff, count); if (result == count) { @@ -1161,6 +1164,9 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count) rt_size_t result; rt_device_t device = disk[drv]; + if (device == RT_NULL) + return RES_ERROR; + result = rt_device_write(device, sector, buff, count); if (result == count) {