You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by st...@apache.org on 2017/02/20 16:17:08 UTC

[1/2] incubator-mynewt-core git commit: Add extra hardening checks to FS

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 5f5e19ff8 -> 47166e2a6


Add extra hardening checks to FS


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/0c6d37a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/0c6d37a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/0c6d37a8

Branch: refs/heads/develop
Commit: 0c6d37a89e4b8104f3fe8b74cb9629e86426bf70
Parents: 408caf5
Author: Fabio Utzig <ut...@utzig.org>
Authored: Wed Feb 15 09:56:05 2017 -0800
Committer: Fabio Utzig <ut...@utzig.org>
Committed: Wed Feb 15 09:56:05 2017 -0800

----------------------------------------------------------------------
 fs/fs/src/fs_dirent.c | 3 +--
 fs/fs/src/fs_file.c   | 2 +-
 fs/fs/src/fs_mount.c  | 5 +++++
 fs/fs/src/fsutil.c    | 4 ++--
 fs/nffs/src/nffs.c    | 3 +++
 5 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c6d37a8/fs/fs/src/fs_dirent.c
----------------------------------------------------------------------
diff --git a/fs/fs/src/fs_dirent.c b/fs/fs/src/fs_dirent.c
index 0216f3b..c9e4636 100644
--- a/fs/fs/src/fs_dirent.c
+++ b/fs/fs/src/fs_dirent.c
@@ -25,8 +25,7 @@ struct fs_ops *fops_from_filename(const char *);
 static struct fs_ops *
 fops_from_dir(const struct fs_dir *dir)
 {
-    /* NOTE: fs_ops must always be the first field for any fs_file */
-    return (struct fs_ops *) *((uint32_t *)dir);
+    return fs_ops_from_container((struct fops_container *) dir);
 }
 
 static inline struct fs_ops *

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c6d37a8/fs/fs/src/fs_file.c
----------------------------------------------------------------------
diff --git a/fs/fs/src/fs_file.c b/fs/fs/src/fs_file.c
index 305a3c4..cb8d1e6 100644
--- a/fs/fs/src/fs_file.c
+++ b/fs/fs/src/fs_file.c
@@ -117,7 +117,7 @@ fake_dirent_is_dir(const struct fs_dirent *dirent)
     return FS_EUNINIT;
 }
 
-static struct fs_ops not_initialized_ops = {
+struct fs_ops not_initialized_ops = {
     .f_open          = &fake_open,
     .f_close         = &fake_close,
     .f_read          = &fake_read,

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c6d37a8/fs/fs/src/fs_mount.c
----------------------------------------------------------------------
diff --git a/fs/fs/src/fs_mount.c b/fs/fs/src/fs_mount.c
index 022ea29..2e998c4 100644
--- a/fs/fs/src/fs_mount.c
+++ b/fs/fs/src/fs_mount.c
@@ -91,8 +91,13 @@ fs_ops_for(const char *fs_name)
     return fops;
 }
 
+struct fs_ops not_initialized_ops;
+
 struct fs_ops *
 fs_ops_from_container(struct fops_container *container)
 {
+    if (!container) {
+        return &not_initialized_ops;
+    }
     return container->fops;
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c6d37a8/fs/fs/src/fsutil.c
----------------------------------------------------------------------
diff --git a/fs/fs/src/fsutil.c b/fs/fs/src/fsutil.c
index 7fb5360..7fc97d1 100644
--- a/fs/fs/src/fsutil.c
+++ b/fs/fs/src/fsutil.c
@@ -28,7 +28,7 @@ fsutil_read_file(const char *path, uint32_t offset, uint32_t len, void *dst,
 
     rc = fs_open(path, FS_ACCESS_READ, &file);
     if (rc != 0) {
-        goto done;
+        return rc;
     }
 
     rc = fs_read(file, len, dst, out_len);
@@ -51,7 +51,7 @@ fsutil_write_file(const char *path, const void *data, uint32_t len)
 
     rc = fs_open(path, FS_ACCESS_WRITE, &file);
     if (rc != 0) {
-        goto done;
+        return rc;
     }
 
     rc = fs_write(file, data, len);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c6d37a8/fs/nffs/src/nffs.c
----------------------------------------------------------------------
diff --git a/fs/nffs/src/nffs.c b/fs/nffs/src/nffs.c
index 7b5c128..5105ca1 100644
--- a/fs/nffs/src/nffs.c
+++ b/fs/nffs/src/nffs.c
@@ -516,6 +516,9 @@ done:
         free(filepath);
     }
     nffs_unlock();
+    if (rc != 0) {
+        *out_dir = NULL;
+    }
     return rc;
 }
 


[2/2] incubator-mynewt-core git commit: This closes #178

Posted by st...@apache.org.
This closes #178


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/47166e2a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/47166e2a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/47166e2a

Branch: refs/heads/develop
Commit: 47166e2a6cfc2d5aa89c58835f8e789f28dbde05
Parents: 5f5e19f 0c6d37a
Author: Sterling Hughes <st...@runtime.io>
Authored: Mon Feb 20 10:16:23 2017 -0600
Committer: Sterling Hughes <st...@runtime.io>
Committed: Mon Feb 20 10:16:23 2017 -0600

----------------------------------------------------------------------
 fs/fs/src/fs_dirent.c | 3 +--
 fs/fs/src/fs_file.c   | 2 +-
 fs/fs/src/fs_mount.c  | 5 +++++
 fs/fs/src/fsutil.c    | 4 ++--
 fs/nffs/src/nffs.c    | 3 +++
 5 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------