mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 10:24:58 +02:00
Found a better way to fix the warning from pevious commit
This commit is contained in:
@@ -431,16 +431,7 @@ void ffAppendFDContent(int fd, FFstrbuf* buffer)
|
||||
(uint32_t) readed == free
|
||||
) {
|
||||
buffer->length += readed;
|
||||
|
||||
//GCC is complaining about a possible write to an array of length zero.
|
||||
//It believes (buffer->allocated * 2) - 1) can be zero. | This is done in ffStrbufEnsureCapacity.
|
||||
//This would happen when buffer->allocated is zero: 0 * 2 = 0; 0 - 1 = UINT32_MAX; UINT32_MAX + 1 = 0;
|
||||
//However, this can never be true, because of our ffStrbufEnsureFree call above.
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||
ffStrbufEnsureCapacity(buffer, (buffer->allocated * 2) - 1); // -1 for null terminator
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
free = ffStrbufGetFree(buffer);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -101,7 +101,7 @@ static void setCapacity(FFstrbuf* strbuf, uint32_t capacity)
|
||||
|
||||
void ffStrbufEnsureCapacity(FFstrbuf* strbuf, uint32_t capacity)
|
||||
{
|
||||
if(strbuf->allocated > capacity)
|
||||
if(strbuf->allocated > capacity || capacity == 0)
|
||||
return;
|
||||
|
||||
setCapacity(strbuf, capacity + 1); // + 1 for the null byte
|
||||
|
||||
Reference in New Issue
Block a user