mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-12 12:58:30 +00:00
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
This commit is contained in:
@@ -1798,7 +1798,9 @@ int ast_rtp_engine_unload_format(struct ast_format *format)
|
|||||||
rtp_engine_mime_type_cleanup(x);
|
rtp_engine_mime_type_cleanup(x);
|
||||||
continue;
|
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++;
|
y++;
|
||||||
}
|
}
|
||||||
mime_types_len = y;
|
mime_types_len = y;
|
||||||
|
|||||||
Reference in New Issue
Block a user