Further fix for clang sanitizer errors
diff --git a/pb_decode.c b/pb_decode.c
index de93f8d..e2574d7 100644
--- a/pb_decode.c
+++ b/pb_decode.c
@@ -1547,8 +1547,11 @@
     if (!pb_decode_varint32(stream, &size))
         return false;
 
+    if (size == (uint32_t)-1)
+        PB_RETURN_ERROR(stream, "size too large");
+
     /* Space for null terminator */
-    alloc_size = (size_t)((size_t)size + 1);
+    alloc_size = (size_t)(size + 1);
 
     if (alloc_size < size)
         PB_RETURN_ERROR(stream, "size too large");