[Asterisk-code-review] rtp engine: Skip useless self-assignment in ast rtp engine u... (asterisk[11])
Walter Doekes
asteriskteam at digium.com
Thu Jul 2 06:18:44 CDT 2015
Walter Doekes has uploaded a new change for review.
https://gerrit.asterisk.org/765
Change subject: rtp_engine: Skip useless self-assignment in ast_rtp_engine_unload_format.
......................................................................
rtp_engine: Skip useless self-assignment in ast_rtp_engine_unload_format.
When running valgrind on Asterisk, it complained about:
==32423== Source and destination overlap in memcpy(0x85a920, 0x85a920, 304)
==32423== at 0x4C2F71C: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/...)
==32423== by 0x55BA91: ast_rtp_engine_unload_format (rtp_engine.c:2292)
==32423== by 0x4EEFB7: ast_format_attr_unreg_interface (format.c:1437)
The code in question is a struct assignment, which may be performed by
memcpy as a compiler optimization. It is changed to only copy the struct
contents if source and destination are different.
ASTERISK-25219 #close
Change-Id: I6d3546c326b03378ca8e9b8cefd41c16e0088b9a
---
M main/rtp_engine.c
1 file changed, 3 insertions(+), 1 deletion(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/65/765/1
diff --git a/main/rtp_engine.c b/main/rtp_engine.c
index 13d003d..60b3f55 100644
--- a/main/rtp_engine.c
+++ b/main/rtp_engine.c
@@ -2289,7 +2289,9 @@
if (ast_format_cmp(&ast_rtp_mime_types[x].payload_type.format, format) == AST_FORMAT_CMP_EQUAL) {
continue;
}
- ast_rtp_mime_types[y] = ast_rtp_mime_types[x];
+ if (x != y) {
+ ast_rtp_mime_types[y] = ast_rtp_mime_types[x];
+ }
y++;
}
mime_types_len = y;
--
To view, visit https://gerrit.asterisk.org/765
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d3546c326b03378ca8e9b8cefd41c16e0088b9a
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 11
Gerrit-Owner: Walter Doekes <walter+asterisk at wjd.nu>
More information about the asterisk-code-review
mailing list