Author: phunt
Date: Tue Oct 21 11:45:20 2008
New Revision: 706718

URL: http://svn.apache.org/viewvc?rev=706718&view=rev
Log:
ZOOKEEPER-201. validate magic number when reading snapshot and transaction

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
    
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Tue Oct 21 11:45:20 2008
@@ -35,6 +35,9 @@
 
   BUGFIXES: 
 
+  ZOOKEEPER-201. validate magic number when reading snapshot and transaction
+  logs (mahadev via phunt)
+
   ZOOKEEPER-200. the magic number for snapshot and log must be different
   (currently same) (phunt)
 

Modified: 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
 (original)
+++ 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
 Tue Oct 21 11:45:20 2008
@@ -94,6 +94,11 @@
             InputArchive ia) throws IOException {
         FileHeader header = new FileHeader();
         header.deserialize(ia, "fileheader");
+        if (header.getMagic() != SNAP_MAGIC) {
+            throw new IOException("mismatching magic headers "
+                    + header.getMagic() + 
+                    " !=  " + FileSnap.SNAP_MAGIC);
+        }
         SerializeUtils.deserializeSnapshot(dt,ia,sessions);
     }
 

Modified: 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java
 (original)
+++ 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java
 Tue Oct 21 11:45:20 2008
@@ -384,6 +384,10 @@
             throws IOException{
             FileHeader header= new FileHeader();
             header.deserialize(ia, "fileheader");
+            if (header.getMagic() != FileTxnLog.TXNLOG_MAGIC) {
+                throw new IOException("Invalid magic number " + 
header.getMagic() 
+                        + " != " + FileTxnLog.TXNLOG_MAGIC);
+            }  
         }
         
         /**
@@ -395,10 +399,10 @@
         protected InputArchive createInputArchive(File logFile) throws 
IOException {
             if(inputStream==null){
                 inputStream= new FileInputStream(logFile);
-                LOG.info("Created new input stream " + logFile);
+                LOG.debug("Created new input stream " + logFile);
                 ia  = BinaryInputArchive.getArchive(new 
BufferedInputStream(inputStream));
                 inStreamCreated(ia,inputStream);
-                LOG.info("created new input archive " + logFile);
+                LOG.debug("created new input archive " + logFile);
             }
             return ia;
         }


Reply via email to