[Bitcode] Fix an unsigned integer overflow while parsing bitcode wrapper header
[Bitcode] Fix an unsigned integer overflow while parsing bitcode wrapper header

Specially crafted bitcode wrapper headers can cause unsigned interger
overflow and lead to crashes when wrapping around. Fix the offset check
and avoid such scenarios.

Writing a testcase for this would involve editing the binary to generate
values that trigger the overflow, since this would never happen while
generating the bitcode in regular compilation flows, so there's
currently no feasible way add one.

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@268881 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 2b1f6c23bcbd88f5e7a3d6659446e45c9592cedf)

apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm