Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: a litlte bit of formatting, but also added closing paren for memcpy call; reviewed

...

Code Block
bgColor#FFCCCC
langc
#include <string.h>
 
void func(const char *src) {
  /* Validate the source string; calculate size */
  char *dest;
  /* malloc destination string */ 
  memcpy(dest, src,
    #ifdef PLATFORM1
      12
    #else
      24
    #endif
  );
  /* ... */
);

Compliant Solution

...

Code Block
bgColor#ccccff
langc
#include <string.h>

void func(const char *src) {
  /* Validate the source string; calculate size */
  char *dest;
  /* malloc destination string */ 
  #ifdef PLATFORM1
    memcpy(dest, src, 12);
  #else
    memcpy(dest, src, 24);
  #endif
  /* ... */
}

Risk Assessment

Improper use of macros may result in Using preprocessor directives inside macro arguments is undefined behavior.

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

PRE32-C

Low

Unlikely

Medium

P2

L3

...