You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2017/02/23 23:41:55 UTC

incubator-mynewt-core git commit: MYNEWT-636; return error if there's magic mismatch on any fcb sector.

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 1449ffcdb -> 2bbb29106


MYNEWT-636; return error if there's magic mismatch on any fcb sector.


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/2bbb2910
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/2bbb2910
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/2bbb2910

Branch: refs/heads/develop
Commit: 2bbb291068d8fe75c4df5f723c7d0d374dffee2b
Parents: 1449ffc
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Thu Feb 23 15:40:15 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Thu Feb 23 15:40:15 2017 -0800

----------------------------------------------------------------------
 fs/fcb/src/fcb.c                          | 5 ++++-
 fs/fcb/test/src/testcases/fcb_test_init.c | 5 +++++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2bbb2910/fs/fcb/src/fcb.c
----------------------------------------------------------------------
diff --git a/fs/fcb/src/fcb.c b/fs/fcb/src/fcb.c
index 0a68be0..30c76b5 100644
--- a/fs/fcb/src/fcb.c
+++ b/fs/fcb/src/fcb.c
@@ -47,7 +47,10 @@ fcb_init(struct fcb *fcb)
             max_align = flash_area_align(fap);
         }
         rc = fcb_sector_hdr_read(fcb, fap, &fda);
-        if (rc <= 0) {
+        if (rc < 0) {
+            return rc;
+        }
+        if (rc == 0) {
             continue;
         }
         if (oldest < 0) {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2bbb2910/fs/fcb/test/src/testcases/fcb_test_init.c
----------------------------------------------------------------------
diff --git a/fs/fcb/test/src/testcases/fcb_test_init.c b/fs/fcb/test/src/testcases/fcb_test_init.c
index d3c33b4..68f3618 100644
--- a/fs/fcb/test/src/testcases/fcb_test_init.c
+++ b/fs/fcb/test/src/testcases/fcb_test_init.c
@@ -35,6 +35,11 @@ TEST_CASE(fcb_test_init)
     TEST_ASSERT(rc == FCB_ERR_ARGS);
 
     fcb->f_sector_cnt = 2;
+    fcb->f_magic = 0x12345678;
+    rc = fcb_init(fcb);
+    TEST_ASSERT(rc == FCB_ERR_MAGIC);
+
+    fcb->f_magic = 0;
     rc = fcb_init(fcb);
     TEST_ASSERT(rc == 0);
 }