Commit Graph

189 Commits

Author SHA1 Message Date
emukidid
8e73fa12f3 Support SD2SP2. (#15) 2019-10-02 13:03:31 +01:00
Alex "Chadderz" Chadwick
a711f2bef2 Fix concurrency bugs in FAT_getAttr/FAT_setAttr. (#13)
A relatively rare concurrency bug existed in these methods due to them not
correctly holding the partition lock during calls to
_FAT_directory_entryFromPath. That method can trigger reads to the partition.
Due to the lock not being held, another thread could still trigger a concurrent
read, potentially corrupting the cache. The fix is simply to ensure the lock is
held around the calls.
2018-04-20 11:23:50 +00:00
Dave Murphy
ba3d6db43d move get_io_dsisd to libnds 2017-09-25 18:24:04 +01:00
Dave Murphy
e254127aa3 consolidate MBR check 2017-09-25 15:04:46 +01:00
Dave Murphy
66a9b27dc0 check for running DSi app too 2017-09-25 14:42:28 +01:00
Dave Murphy
42fe5af38d update FAT32 FSINFO for statvfs if invalid 2017-07-31 14:45:57 +01:00
fincs
b7450524b1 Avoid using DSi SD interface in NDS mode 2017-01-17 09:32:58 +00:00
Dave Murphy
9e2f91dee6 devkitARM r46 updates 2017-01-17 09:32:57 +00:00
Dave Murphy
d4926573ac Merge pull request #9 from Nebuleon/patch
An unsigned char fix and an errno change
2016-12-22 04:40:39 +00:00
Dave Murphy
73ccaec815 match newlib
ensure max filename length matches newlib
2016-12-20 20:07:08 +00:00
Nebuleon Fumika
b7c4d38b32 Don't set errno at the end of a directory if no error occurred
In _FAT_dirnext, which implements a function similar to readdir, don't
set errno to ENOENT, because reaching the end of a directory is not an
error. This conforms to POSIX readdir and is consistent with _FAT_read
not setting errno when reaching EOF.
2016-06-20 07:19:37 +00:00
Nebuleon Fumika
3fde6ce161 Set errno to ENOTEMPTY when removing a non-empty directory
The value that was previously set, EPERM, implies that the user didn't
have the (write) permission to remove the directory.
2016-06-19 19:58:02 +00:00
Nebuleon Fumika
d59c7c8b35 More correctly handle the case where plain char is signed
In _FAT_directory_lfnLength, the check 'ch < 0x20' incorrectly catches
any extended UTF-8 bytes if the plain 'char' type is signed:

  0x80 < 0x20 ... 0xEF < 0x20

are interpreted as (negative value < 32). The check for 0xF0 and above
also fails to work properly due to 0xF0 being negative as well.
2016-06-19 19:48:48 +00:00
FrankHB
affed015e1 Removed redundant check
`size_t` is guaranteed to be not negative.
2015-06-02 00:34:49 +08:00
Dave Murphy
1e06c677b6 remove unneeded flag 2015-02-02 00:58:13 +00:00
Dave Murphy
ef7a8748e6 fix FAT_setAttr for big endian 2015-01-13 15:11:51 +00:00
Dave Murphy
d6ac947826 fix patching error 2014-12-19 14:09:45 +00:00
Dave Murphy
38b02152b8 lfn fixes from Patrik Rak 2014-12-17 11:16:32 +00:00
Dave Murphy
89e4900115 update devoptab for latest newlib patches 2014-12-17 10:50:29 +00:00
Dave Murphy
7e8724f158 use limits.h & PATH_MAX 2014-12-15 02:25:36 +00:00
Dave Murphy
b42fdc447c fix FAT_setAttr 2014-12-15 02:21:51 +00:00
Dave Murphy
d468306a18 fix check for null terminator 2014-11-21 17:00:31 +00:00
Dave Murphy
3375e8fc58 use sys/param.h for MAXPATHLEN 2014-04-01 17:50:22 +01:00
Dave Murphy
f20e5200a7 Merge branch 'master' of ssh://devkitpro.git.sourceforge.net/gitroot/devkitpro/libfat 2012-12-16 00:23:23 +00:00
mtheall
8ae46ee04f Add hidden interface to support FeOS implementation of multiple cwd.
This interface grabs the pointer to the cwd cluster. This interface
is hidden because it can be very easily used incorrectly. Modifying
the cwd cluster value may cause unexpected results, so use at your
own risk, which includes a corrupted storage medium.
2012-09-14 16:48:11 -05:00
mtheall
2aaf2cfd6f fix finding . and .. entries for root directory 2012-09-13 18:21:00 -05:00
Dave Murphy
b72273e17b fix mixed eols 2012-05-20 15:40:21 +01:00
Dave Murphy
f6ff332c5c add FAT_setAttr, expose FAT_setAttr/FAT_getAttr and add defines for DOS attributes 2012-05-13 00:24:58 +01:00
Dave Murphy
250ced0be3 get rid of sprintf as per https://sourceforge.net/tracker/?func=detail&aid=3465300&group_id=114505&atid=668553 2012-02-26 16:20:18 +00:00
Dave Murphy
84dd3a491a starting get/set for DOS file attributes 2011-07-10 10:17:05 +00:00
Dave Murphy
1bb3bab6e4 cleanup patch - http://sourceforge.net/tracker/?func=detail&aid=3331605&group_id=114505&atid=668553 2011-06-28 20:35:00 +00:00
tantricity
a7307e0c0e case sensitive patch (Extrems) 2011-06-21 03:49:56 +00:00
tantricity
6407426a76 replace another buffer with an allocation (dimok) 2011-06-18 16:01:18 +00:00
tantricity
d5f437723f support > 512 bytes per sector in libfat (dimok) 2011-06-18 07:40:53 +00:00
Dave Murphy
907449094b sector buffer in ewram for writing from arm7 (DSi SD fix) 2011-01-28 02:09:07 +00:00
tantricity
93ec6aad6a support to read/write FS info sector for FAT32 partitions. speeds up statvfs. patch submitted by dimok 2011-01-16 19:03:37 +00:00
Dave Murphy
875d47b8f3 update for changes in newlib patches 2011-01-11 12:15:37 +00:00
Dave Murphy
037e22f5f2 adjust nds cache 2011-01-11 12:12:16 +00:00
Dave Murphy
8d8b83e967 revert cache bypass 2011-01-11 12:11:09 +00:00
tantricity
ba3622a4cd only bypass cache fill on write for nds. this is sub-optimal on wii/gc. 2010-11-17 18:44:13 +00:00
zeromus
639836914a another little warning-smashing change i found 2010-10-22 05:05:46 +00:00
zeromus
34e1fb3bad just a tiny warning-smashing change i found laying around in here 2010-10-22 05:03:52 +00:00
Dave Murphy
7f77d19460 last cluster is valid for allocation 2010-10-12 11:36:42 +00:00
Dave Murphy
81110882db correct use of uninitialised variable 2010-10-07 21:53:18 +00:00
tantricity
571d57ee0a fix volume label bug (rodries) 2010-09-18 17:56:47 +00:00
tantricity
d5702c9f29 better check for devoptab name 2010-09-04 07:15:56 +00:00
Dave Murphy
5f29cee9cb remove bogus FAT check 2010-09-03 18:52:49 +00:00
Dave Murphy
247aa36062 avoid buffer overflow 2010-09-03 18:49:11 +00:00
tantricity
eb73138455 minor changes 2010-06-26 19:33:19 +00:00
tantricity
9b55efe66d fix 2010-06-19 08:12:39 +00:00