
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
37 lines
954 B
Plaintext
37 lines
954 B
Plaintext
== Why is this an issue?
|
||
|
||
The use of ``++strlen++`` to determine the length of a string to which you are trying to append a null character is an anti-pattern. ``++strlen++`` requires as input an already null-terminated string; the result of passing a non-null-terminated string as an input to ``++strlen++`` is undefined. It may even lead to a memory access violation.
|
||
|
||
|
||
=== Noncompliant code example
|
||
|
||
[source,cpp]
|
||
----
|
||
void f() {
|
||
char *myStr;
|
||
// ...
|
||
myStr[strlen(myStr)] = '\0'; // Noncompliant, strlen requires an already null-terminated string
|
||
}
|
||
----
|
||
|
||
|
||
ifdef::env-github,rspecator-view[]
|
||
|
||
'''
|
||
== Implementation Specification
|
||
(visible only on this page)
|
||
|
||
=== Message
|
||
|
||
Review this suspicious assignment.
|
||
|
||
|
||
'''
|
||
== Comments And Links
|
||
(visible only on this page)
|
||
|
||
=== on 3 Sep 2020, 20:21:21 Abbas Sabra wrote:
|
||
\[~massimo.paladin] This looks more like a Bug to me. Update if you agree, let's discuss if you don't
|
||
|
||
endif::env-github,rspecator-view[]
|