[PATCH 2/2] Object/WasmObjectFile: Fix comparison of different signs

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 11 00:07:56 PDT 2018


- llvm-dev
+ llvm-commits

Sam, this looks like your code. Can you take a look?

On Sun, Jun 10, 2018 at 3:34 PM, Mauro Rossi <issor.oruam at gmail.com> wrote:
> Fixes the following building error:
>
> external/llvm/lib/Object/WasmObjectFile.cpp:978:14:
> error: comparison of integers of different signs:
> 'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare]
>     if (Size > Ctx.End - Ctx.Ptr)
>         ~~~~ ^ ~~~~~~~~~~~~~~~~~
> 1 error generated.
>
> Fixes: 50617cfe72 ("[WebAssembly] Add more error checking to object file parsing")
> ---
>  lib/Object/WasmObjectFile.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/Object/WasmObjectFile.cpp b/lib/Object/WasmObjectFile.cpp
> index 2f91a973dda..ba5e6ac4cb3 100644
> --- a/lib/Object/WasmObjectFile.cpp
> +++ b/lib/Object/WasmObjectFile.cpp
> @@ -975,7 +975,7 @@ Error WasmObjectFile::parseDataSection(ReadContext &Ctx) {
>      if (Error Err = readInitExpr(Segment.Data.Offset, Ctx))
>        return Err;
>      uint32_t Size = readVaruint32(Ctx);
> -    if (Size > Ctx.End - Ctx.Ptr)
> +    if (Size > (uint32_t) (Ctx.End - Ctx.Ptr))
>        return make_error<GenericBinaryError>("Invalid segment size",
>                                              object_error::parse_failed);
>      Segment.Data.Content = ArrayRef<uint8_t>(Ctx.Ptr, Size);
> --
> 2.17.1
>


More information about the llvm-commits mailing list