[Mesa-dev] [PATCH 08/17] loader: Fix compiler warnings about truncating the PCI ID path.
Eric Anholt
eric at anholt.net
Tue Feb 13 10:31:04 UTC 2018
Ian Romanick <idr at 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.engestrom at 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."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180213/a45ae8df/attachment.sig>
More information about the mesa-dev
mailing list