3f2ac7d890
Also short-circuit on `offset` to avoid checking `count` a second time when `ft_ansi_stream_io` is used for reading. Per ISO/IEC 9899: If an argument to a function has an invalid value (such as a value outside the domain of the function, or a pointer outside the address space of the program, or a null pointer, or apointer to non-modifiable storage when the corresponding parameter is not const-qualified) or a type (after promotion) not expected by a function with variable number of arguments, the behavior is undefined. If a function argument is described as being an array, the pointer actually passed to the function shall have a value such that all address computations and accesses to objects (that would be valid if the pointer did point to the first element of such an array) are in fact valid. Per IEEE Std 1003.1: size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); The `fread` function shall read into the array pointed to by `ptr` up to `nitems` elements whose size is specified by `size` in bytes, from the stream pointed to by `stream`. Since the first argument to `fread` is described as being an array, its behavior is undefined when that argument is a null pointer. Per the documentation on `ft_ansi_stream_io`: If `count' is zero (this is, the function is used for seeking), a non-zero return value indicates an error. Thus the intent is clear, and the call to `fread` can be skipped, avoiding undefined behaviour. |
||
---|---|---|
builds | ||
devel | ||
docs | ||
include | ||
objs | ||
src | ||
subprojects | ||
tests | ||
.clang-format | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
.mailmap | ||
autogen.sh | ||
CMakeLists.txt | ||
configure | ||
LICENSE.TXT | ||
Makefile | ||
meson_options.txt | ||
meson.build | ||
modules.cfg | ||
README | ||
README.git | ||
vms_make.com |
FreeType 2.13.0 =============== Homepage: https://www.freetype.org FreeType is a freely available software library to render fonts. It is written in C, designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats. Please read the `docs/CHANGES` file, it contains IMPORTANT INFORMATION. Read the files `docs/INSTALL*` for installation instructions; see the file `docs/LICENSE.TXT` for the available licenses. For using FreeType's git repository instead of a distribution bundle, please read file `README.git`. Note that you have to actually clone the repository; using a snapshot will not work (in other words, don't use gitlab's 'Download' button). The FreeType 2 API reference is located in directory `docs/reference`; use the file `index.html` as the top entry point. [Please note that currently the search function for locally installed documentation doesn't work due to cross-site scripting issues.] Additional documentation is available as a separate package from our sites. Go to https://download.savannah.gnu.org/releases/freetype/ and download one of the following files. freetype-doc-2.13.0.tar.xz freetype-doc-2.13.0.tar.gz ftdoc2130.zip To view the documentation online, go to https://www.freetype.org/freetype2/docs/ Mailing Lists ------------- The preferred way of communication with the FreeType team is using e-mail lists. general use and discussion: freetype@nongnu.org engine internals, porting, etc.: freetype-devel@nongnu.org announcements: freetype-announce@nongnu.org git repository tracker: freetype-commit@nongnu.org The lists are moderated; see https://www.freetype.org/contact.html how to subscribe. Bugs ---- Please submit bug reports at https://gitlab.freedesktop.org/freetype/freetype/-/issues Alternatively, you might report bugs by e-mail to `freetype-devel@nongnu.org`. Don't forget to send a detailed explanation of the problem -- there is nothing worse than receiving a terse message that only says 'it doesn't work'. Patches ------- For larger changes please provide merge requests at https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests Alternatively, you can send patches to the `freetype-devel@nongnu.org` mailing list -- and thank you in advance for your work on improving FreeType! Details on the process can be found here: https://www.freetype.org/developer.html#patches Enjoy! The FreeType Team ---------------------------------------------------------------------- Copyright (C) 2006-2023 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of README ---