|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3] tools/libs/stat: fix broken build
Hi Juergen,
> On 14 Sep 2020, at 11:58, Bertrand Marquis <bertrand.marquis@xxxxxxx> wrote:
>
>
>
>> On 12 Sep 2020, at 14:08, Juergen Gross <jgross@xxxxxxxx> wrote:
>>
>> Making getBridge() static triggered a build error with some gcc versions:
>>
>> error: 'strncpy' output may be truncated copying 15 bytes from a string of
>> length 255 [-Werror=stringop-truncation]
>>
>> Fix that by using a buffer with 256 bytes instead.
>>
>> Fixes: 6d0ec053907794 ("tools: split libxenstat into new tools/libs/stat
>> directory")
>> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
> Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
Sorry i have to come back on this one.
I still see an error compiling with Yocto on this one:
| inlined from 'xenstat_collect_networks' at xenstat_linux.c:306:2:
| xenstat_linux.c:81:6: error: 'strncpy' output may be truncated copying 255
bytes from a string of length 255 [-Werror=stringop-truncation]
| 81 | strncpy(result, de->d_name, resultLen);
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To solve it, I need to define devBridge[257] as devNoBrideg.
Regards
Bertrand
>
>> ---
>> tools/libs/stat/xenstat_linux.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/libs/stat/xenstat_linux.c
>> b/tools/libs/stat/xenstat_linux.c
>> index 793263f2b6..d2ee6fda64 100644
>> --- a/tools/libs/stat/xenstat_linux.c
>> +++ b/tools/libs/stat/xenstat_linux.c
>> @@ -78,7 +78,7 @@ static void getBridge(char *excludeName, char *result,
>> size_t resultLen)
>> sprintf(tmp, "/sys/class/net/%s/bridge",
>> de->d_name);
>>
>> if (access(tmp, F_OK) == 0) {
>> - strncpy(result, de->d_name, resultLen -
>> 1);
>> + strncpy(result, de->d_name, resultLen);
>> result[resultLen - 1] = 0;
>> }
>> }
>> @@ -264,7 +264,7 @@ int xenstat_collect_networks(xenstat_node * node)
>> {
>> /* Helper variables for parseNetDevLine() function defined above */
>> int i;
>> - char line[512] = { 0 }, iface[16] = { 0 }, devBridge[16] = { 0 },
>> devNoBridge[17] = { 0 };
>> + char line[512] = { 0 }, iface[16] = { 0 }, devBridge[256] = { 0 },
>> devNoBridge[257] = { 0 };
>> unsigned long long rxBytes, rxPackets, rxErrs, rxDrops, txBytes,
>> txPackets, txErrs, txDrops;
>>
>> struct priv_data *priv = get_priv_data(node->handle);
>> --
>> 2.26.2
>>
>>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |