On 02/13/2018 02:31 AM, Eric Anholt wrote: > Ian Romanick <i...@freedesktop.org> writes: > >> On 02/10/2018 08:33 AM, Eric Anholt wrote: >>> My build was producing: >>> >>> ../src/loader/loader.c:121:67: warning: ā%1uā directive output may be >>> truncated writing between 1 and 3 bytes into a region of size 2 >>> [-Wformat-truncation=] >>> >>> and we can avoid this careful calculation by just using asprintf (as we do >>> elsewhere in the file). >>> >>> Cc: Eric Engestrom <eric.engest...@imgtec.com> >>> --- >>> src/loader/loader.c | 15 +++++++-------- >>> 1 file changed, 7 insertions(+), 8 deletions(-) >>> >>> diff --git a/src/loader/loader.c b/src/loader/loader.c >>> index 913b3dcac032..92b4c5204b19 100644 >>> --- a/src/loader/loader.c >>> +++ b/src/loader/loader.c >>> @@ -110,17 +110,16 @@ static char *loader_get_dri_config_device_id(void) >>> >>> static char *drm_construct_id_path_tag(drmDevicePtr device) >>> { >>> -#define PCI_ID_PATH_TAG_LENGTH sizeof("pci-xxxx_xx_xx_x") >>> char *tag = NULL; >>> >>> if (device->bustype == DRM_BUS_PCI) { >>> - tag = calloc(PCI_ID_PATH_TAG_LENGTH, sizeof(char)); >>> - if (tag == NULL) >>> - return NULL; >>> - >>> - snprintf(tag, PCI_ID_PATH_TAG_LENGTH, "pci-%04x_%02x_%02x_%1u", >>> - device->businfo.pci->domain, device->businfo.pci->bus, >>> - device->businfo.pci->dev, device->businfo.pci->func); >>> + if (asprintf(&tag, "pci-%04x_%02x_%02x_%1u", >>> + device->businfo.pci->domain, >>> + device->businfo.pci->bus, >>> + device->businfo.pci->dev, >>> + device->businfo.pci->func) < 0) { >>> + return NULL; >> >> Won't tag be NULL on failure? Then you could just >> >> asprintf(&tag, "pci-%04x_%02x_%02x_%1u", >> device->businfo.pci->domain, >> device->businfo.pci->bus, >> device->businfo.pci->dev, >> device->businfo.pci->func); >> return tag; > > "If memory allocation wasn't possible, or some other error occurs, these > functions will return -1, and the contents of strp are undefined."
Boo. Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev