Hi bogner,
Modified ReadAbbrevBlock to return "true' when an error is identified (instead
of crashing). Propagate that error appropriately
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7007
Files:
lib/Frontend/SerializedDiagnosticReader.cpp
lib/Serialization/ASTReader.cpp
Index: lib/Frontend/SerializedDiagnosticReader.cpp
===================================================================
--- lib/Frontend/SerializedDiagnosticReader.cpp
+++ lib/Frontend/SerializedDiagnosticReader.cpp
@@ -91,7 +91,8 @@
return Cursor::BlockEnd;
case llvm::bitc::DEFINE_ABBREV:
- Stream.ReadAbbrevRecord();
+ if (Stream.ReadAbbrevRecord())
+ return SDError::InvalidDiagnostics;
continue;
case llvm::bitc::UNABBREV_RECORD:
Index: lib/Serialization/ASTReader.cpp
===================================================================
--- lib/Serialization/ASTReader.cpp
+++ lib/Serialization/ASTReader.cpp
@@ -1340,7 +1340,10 @@
Cursor.JumpToBit(Offset);
return false;
}
- Cursor.ReadAbbrevRecord();
+ if (Cursor.ReadAbbrevRecord()) {
+ Error("malformed abbrev record in AST file");
+ return Failure;
+ }
}
}
@@ -4262,7 +4265,8 @@
InputFilesCursor.JumpToBit(Offset);
break;
}
- InputFilesCursor.ReadAbbrevRecord();
+ if (InputFilesCursor.ReadAbbrevRecord())
+ return true;
}
}
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
Index: lib/Frontend/SerializedDiagnosticReader.cpp
===================================================================
--- lib/Frontend/SerializedDiagnosticReader.cpp
+++ lib/Frontend/SerializedDiagnosticReader.cpp
@@ -91,7 +91,8 @@
return Cursor::BlockEnd;
case llvm::bitc::DEFINE_ABBREV:
- Stream.ReadAbbrevRecord();
+ if (Stream.ReadAbbrevRecord())
+ return SDError::InvalidDiagnostics;
continue;
case llvm::bitc::UNABBREV_RECORD:
Index: lib/Serialization/ASTReader.cpp
===================================================================
--- lib/Serialization/ASTReader.cpp
+++ lib/Serialization/ASTReader.cpp
@@ -1340,7 +1340,10 @@
Cursor.JumpToBit(Offset);
return false;
}
- Cursor.ReadAbbrevRecord();
+ if (Cursor.ReadAbbrevRecord()) {
+ Error("malformed abbrev record in AST file");
+ return Failure;
+ }
}
}
@@ -4262,7 +4265,8 @@
InputFilesCursor.JumpToBit(Offset);
break;
}
- InputFilesCursor.ReadAbbrevRecord();
+ if (InputFilesCursor.ReadAbbrevRecord())
+ return true;
}
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits