diff --git a/src/requester/instance-id.c b/src/requester/instance-id.c
index b746a96..7fe7c86 100644
--- a/src/requester/instance-id.c
+++ b/src/requester/instance-id.c
@@ -5,6 +5,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdlib.h>
+#include <sys/stat.h>
 #include <unistd.h>
 
 #define BIT(i) (1UL << (i))
@@ -32,6 +33,8 @@
 int pldm_instance_db_init(struct pldm_instance_db **ctx, const char *dbpath)
 {
 	struct pldm_instance_db *l_ctx;
+	struct stat statbuf;
+	int rc;
 
 	/* Make sure the provided pointer was initialised to NULL. In the future
 	 * if we stabilise the ABI and expose the struct definition the caller
@@ -41,6 +44,18 @@
 		return -EINVAL;
 	}
 
+	/* Ensure the underlying file is sized for properly managing allocations
+	 */
+	rc = stat(dbpath, &statbuf);
+	if (rc < 0) {
+		return -EINVAL;
+	}
+
+	if (statbuf.st_size <
+	    ((off_t)(PLDM_TID_MAX) * (off_t)(PLDM_INST_ID_MAX))) {
+		return -EINVAL;
+	}
+
 	l_ctx = calloc(1, sizeof(struct pldm_instance_db));
 	if (!l_ctx) {
 		return -ENOMEM;
diff --git a/tests/instance-id.cpp b/tests/instance-id.cpp
index 99366b1..57b6df2 100644
--- a/tests/instance-id.cpp
+++ b/tests/instance-id.cpp
@@ -63,6 +63,23 @@
     int fd;
 };
 
+TEST_F(PldmInstanceDbTest, dbLengthZero)
+{
+    struct pldm_instance_db* db = nullptr;
+
+    std::filesystem::resize_file(dbPath, 0);
+    EXPECT_EQ(pldm_instance_db_init(&db, dbPath.c_str()), -EINVAL);
+}
+
+TEST_F(PldmInstanceDbTest, dbLengthShort)
+{
+    struct pldm_instance_db* db = nullptr;
+
+    std::filesystem::resize_file(dbPath,
+                                 PLDM_MAX_TIDS * pldmMaxInstanceIds - 1);
+    EXPECT_EQ(pldm_instance_db_init(&db, dbPath.c_str()), -EINVAL);
+}
+
 TEST_F(PldmInstanceDbTest, dbInstance)
 {
     struct pldm_instance_db* db = nullptr;
