From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/other Bug 1726] possible overrun bugs in soring found with LTO
Date: Tue, 17 Jun 2025 23:06:50 +0000 [thread overview]
Message-ID: <bug-1726-3@https.bugs.dpdk.org/> (raw)
[-- Attachment #1: Type: text/plain, Size: 10981 bytes --]
https://bugs.dpdk.org/show_bug.cgi?id=1726
Bug ID: 1726
Summary: possible overrun bugs in soring found with LTO
Product: DPDK
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: other
Assignee: dev@dpdk.org
Reporter: stephen@networkplumber.org
Target Milestone: ---
Enabling LTO in build allows compiler to detect more bugs such as out of bounds
references inside libraries. Several warnings in soring
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 128 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 160 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 192 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 224 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 256 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 288 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 320 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 352 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 384 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 416 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 448 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
| ^
In function ‘__rte_ring_dequeue_elems_128’,
inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:279:3,
inlined from ‘soring_dequeue’ at ../lib/ring/soring.c:315:3,
inlined from ‘rte_soring_dequeue_bulk’ at ../lib/ring/soring.c:552:9,
inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:181:14:
../lib/ring/rte_ring_elem_pvt.h:250:25: warning: writing 32 bytes into a region
of size 0 [-Wstringop-overflow=]
250 | memcpy((obj + i), (const void *)(ring + idx),
32);
| ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:157:18: note: at offset 480 into destination object
‘dequeued_objs’ of size 128
157 | uint32_t dequeued_objs[32];
|
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #2: Type: text/html, Size: 12855 bytes --]
reply other threads:[~2025-06-17 23:06 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-1726-3@https.bugs.dpdk.org/ \
--to=bugzilla@dpdk.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.