Arman Hasanzadeh cdaac01490 Add fbounds-safety annotations for VP8BitWriter.
Reasoning:

The `fbounds-safety` compiler extension reported out-of-bounds accesses
on the `buf` member of the `VP8BitWriter` struct (defined in
`src/utils/bit_writer_utils.h`, line 36). These occurred in
`src/utils/bit_writer_utils.c` at lines 70, 74, 76, and 189, where
`buf` was used with array indexing or pointer arithmetic despite being a
`__single` pointer by default.

To fix this, the `buf` member was annotated as
`__sized_by_or_null(max_pos)` in `src/utils/bit_writer_utils.h`
(line 36), associating it with the `max_pos` member which stores the
buffer size.

This annotation introduced a new build error in the `BitWriterResize`
function (`src/utils/bit_writer_utils.c`, line 55) when assigning
the result of `WebPSafeMalloc` (an `__unsafe_indexable` pointer) to the
now-annotated `bw->buf`. This was resolved by:
1. Using `bw->buf = __unsafe_forge_bidi_indexable(uint8_t*, new_buf,
   new_size);` (line 55) to create a properly bounded pointer from the
  `malloc` result (`new_buf`) using its size (`new_size`) before
  assigning it to `bw->buf`.

Bug: 432511821
Change-Id: I1a24a9a432388ccce53a5e9b3b5e58d22aa61d0c
2025-08-14 14:06:51 -07:00
2025-07-31 14:53:58 -07:00
2021-01-02 15:51:55 -08:00
2025-07-31 14:53:58 -07:00
2013-12-29 11:56:21 -05:00
2025-04-16 18:53:36 -07:00
2025-07-31 20:54:06 -07:00
2025-05-16 12:43:52 -07:00
2025-07-31 14:53:58 -07:00
2025-08-01 13:14:54 -07:00
2023-05-30 13:54:06 -07:00
2021-01-02 15:51:55 -08:00
2024-06-01 10:21:54 -05:00
2025-06-30 12:26:05 -07:00
2025-06-30 12:26:05 -07:00
2025-07-07 17:20:00 -07:00
2018-11-07 19:12:35 -08:00
2025-06-30 12:26:15 -07:00
2010-09-30 09:55:07 -04:00
2016-05-24 15:35:20 +02:00
2021-01-02 15:51:55 -08:00
2021-01-02 15:51:55 -08:00
2025-03-28 11:44:03 +01:00
2025-06-30 12:26:15 -07:00
2015-04-18 08:46:53 -07:00
2025-06-30 12:26:15 -07:00

WebP Codec

      __   __  ____  ____  ____
     /  \\/  \/  _ \/  _ )/  _ \
     \       /   __/  _  \   __/
      \__\__/\____/\_____/__/ ____  ___
            / _/ /    \    \ /  _ \/ _/
           /  \_/   / /   \ \   __/  \__
           \____/____/\_____/_____/____/v1.6.0

WebP codec is a library to encode and decode images in WebP format. This package contains the library that can be used in other programs to add WebP support, as well as the command line tools 'cwebp' and 'dwebp' to compress and decompress images respectively.

See https://developers.google.com/speed/webp for details on the image format.

The latest source tree is available at https://chromium.googlesource.com/webm/libwebp

It is released under the same license as the WebM project. See https://www.webmproject.org/license/software/ or the "COPYING" file for details. An additional intellectual property rights grant can be found in the file PATENTS.

Building

See the building documentation.

Encoding and Decoding Tools

The examples/ directory contains tools to encode and decode images and animations, view information about WebP images, and more. See the tools documentation.

APIs

See the APIs documentation, and API usage examples in the examples/ directory.

Bugs

Please report all bugs to the issue tracker. For security reports, select 'Security report' from the Template dropdown.

Patches welcome! See how to contribute.

Discuss

Email: webp-discuss@webmproject.org

Web: https://groups.google.com/a/webmproject.org/group/webp-discuss

Description
Mirror only. Please do not send pull requests. See https://chromium.googlesource.com/webm/libwebp/+/HEAD/CONTRIBUTING.md.
Readme 19 MiB
Languages
C 94.3%
C++ 1.4%
CMake 1.1%
Shell 1.1%
M4 1%
Other 1%