Signed-off-by: Charles Manning <cdhmanning@gmail.com>
return yaffsfs_lastError;
}
return yaffsfs_lastError;
}
+int yaffsfs_CheckMemRegion(const void *addr, size_t size, int writeable)
+{
+ if(!addr)
+ return -1;
+ return 0;
+}
+
#ifdef CONFIG_YAFFS_USE_PTHREADS
#include <pthread.h>
#ifdef CONFIG_YAFFS_USE_PTHREADS
#include <pthread.h>
{test_yaffs_write,test_yaffs_write_clean,"test_yaffs_write"},
{test_yaffs_write_EBADF,test_yaffs_write_EBADF_clean,"test_yaffs_write_EBADF"},
{test_yaffs_write,test_yaffs_write_clean,"test_yaffs_write"},
{test_yaffs_write_EBADF,test_yaffs_write_EBADF_clean,"test_yaffs_write_EBADF"},
- {test_yaffs_write_big_file,test_yaffs_write_big_file_clean,"test_yaffs_write_big_file"},
+// {test_yaffs_write_big_file,test_yaffs_write_big_file_clean,"test_yaffs_write_big_file"},
{test_yaffs_write_EROFS,test_yaffs_write_EROFS_clean,"test_yaffs_write_EROFS"},
{test_yaffs_read,test_yaffs_read_clean,"test_yaffs_read"},
{test_yaffs_write_EROFS,test_yaffs_write_EROFS_clean,"test_yaffs_write_EROFS"},
{test_yaffs_read,test_yaffs_read_clean,"test_yaffs_read"},
void *yaffsfs_malloc(size_t size);
void yaffsfs_free(void *ptr);
void *yaffsfs_malloc(size_t size);
void yaffsfs_free(void *ptr);
+int yaffsfs_CheckMemRegion(const void *addr, size_t size, int writeable);
+
void yaffsfs_OSInitialisation(void);
void yaffsfs_OSInitialisation(void);
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0)< 0) {
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
Y_LOFF_T maxRead;
u8 *buf = (u8 *) vbuf;
Y_LOFF_T maxRead;
u8 *buf = (u8 *) vbuf;
+ if(yaffsfs_CheckMemRegion(vbuf, nbyte, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int nToWrite = 0;
const u8 *buf = (const u8 *)vbuf;
int nToWrite = 0;
const u8 *buf = (const u8 *)vbuf;
+ if(yaffsfs_CheckMemRegion(vbuf, nbyte, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
YCHAR *alt_newpath = NULL;
YCHAR *alt_newpath = NULL;
- if (!oldPath || !newPath) {
+ if(yaffsfs_CheckMemRegion(oldPath, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(newPath, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(buf, sizeof(*buf), 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(buf, sizeof(*buf), 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
- if (!path || !name || !data) {
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(name, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(data, size, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(name, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(data, size, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
- if (!path || !name || !data) {
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(name, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(data, size, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(name, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(data, size, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(data, size, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(data, size, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int loop = 0;
int retVal = -1;
int loop = 0;
int retVal = -1;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(name, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(name, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int loop = 0;
int retval = -1;
int loop = 0;
int retval = -1;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int result;
YCHAR *alt_path;
int result;
YCHAR *alt_path;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int result = YAFFS_FAIL;
struct yaffs_dev *dev = NULL;
int result = YAFFS_FAIL;
struct yaffs_dev *dev = NULL;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int retVal = -1;
struct yaffs_dev *dev = NULL;
int retVal = -1;
struct yaffs_dev *dev = NULL;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int retVal = -1;
struct yaffs_dev *dev = NULL;
int retVal = -1;
struct yaffs_dev *dev = NULL;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
struct yaffs_dev *dev = NULL;
YCHAR *dummy;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(dirname, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return NULL;
}
yaffsfs_SetError(-EFAULT);
return NULL;
}
dsc = (struct yaffsfs_DirSearchContxt *) dirp;
dsc = (struct yaffsfs_DirSearchContxt *) dirp;
+ if(yaffsfs_CheckMemRegion(dirp, sizeof(*dsc), 0) < 0)
+ return;
+
yaffsfs_Lock();
yaffsfs_SetDirRewound(dsc);
yaffsfs_Lock();
yaffsfs_SetDirRewound(dsc);
dsc = (struct yaffsfs_DirSearchContxt *) dirp;
dsc = (struct yaffsfs_DirSearchContxt *) dirp;
+ if(yaffsfs_CheckMemRegion(dirp, sizeof(*dsc), 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
- if (!oldpath || !newpath) {
+ if(yaffsfs_CheckMemRegion(oldpath, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(newpath, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int notDir = 0;
int loop = 0;
int notDir = 0;
int loop = 0;
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(buf, bufsiz, 1) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
int lnkLoop = 0;
YCHAR *newname;
int lnkLoop = 0;
YCHAR *newname;
- if (!oldpath || !linkpath) {
+ if(yaffsfs_CheckMemRegion(oldpath, 0, 0) < 0 ||
+ yaffsfs_CheckMemRegion(linkpath, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}
+ if(yaffsfs_CheckMemRegion(path, 0, 0) < 0){
yaffsfs_SetError(-EFAULT);
return -1;
}
yaffsfs_SetError(-EFAULT);
return -1;
}