diff --git a/ledger-tool/src/main.rs b/ledger-tool/src/main.rs
index 0220fda8e05065..40b87e8915ebac 100644
--- a/ledger-tool/src/main.rs
+++ b/ledger-tool/src/main.rs
@@ -499,6 +499,17 @@ fn analyze_storage(database: &Database) -> Result<(), String> {
         "TransactionStatus",
         TransactionStatus::key_size(),
     )?;
+    analyze_column::<TransactionStatus>(
+        database,
+        "TransactionStatusIndex",
+        TransactionStatusIndex::key_size(),
+    )?;
+    analyze_column::<AddressSignatures>(
+        database,
+        "AddressSignatures",
+        AddressSignatures::key_size(),
+    )?;
+    analyze_column::<Rewards>(database, "Rewards", Rewards::key_size())?;
 
     Ok(())
 }
diff --git a/ledger/src/blockstore_db.rs b/ledger/src/blockstore_db.rs
index 9f6519d4ba1fb7..9614ebdb1d2cef 100644
--- a/ledger/src/blockstore_db.rs
+++ b/ledger/src/blockstore_db.rs
@@ -368,11 +368,15 @@ impl Column for columns::AddressSignatures {
     }
 
     fn index(key: &[u8]) -> (u64, Pubkey, Slot, Signature) {
-        let index = BigEndian::read_u64(&key[0..8]);
-        let pubkey = Pubkey::new(&key[8..40]);
-        let slot = BigEndian::read_u64(&key[40..48]);
-        let signature = Signature::new(&key[48..112]);
-        (index, pubkey, slot, signature)
+        if key.len() != 112 {
+            (0, Pubkey::default(), 0, Signature::default())
+        } else {
+            let index = BigEndian::read_u64(&key[0..8]);
+            let pubkey = Pubkey::new(&key[8..40]);
+            let slot = BigEndian::read_u64(&key[40..48]);
+            let signature = Signature::new(&key[48..112]);
+            (index, pubkey, slot, signature)
+        }
     }
 
     fn primary_index(index: Self::Index) -> u64 {