Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Made 2 corrections

...

Code Block
bgColor#ccccff
void f1 (size_t nchars, size_t val) {

	char *p = (char *)malloc(nchars);
	const size_t n = val;

	if (nchars -< n < 0) {
     		/* Handle Error */
	}

	else {
		memset(p, 0, n);
	}

}

...

Code Block
bgColor#FFcccc
void f3(int *a) {

	float b = 3.14;
	const size_t n = sizeof(*b);
	void *p = a;
	void *q = &b;

	memcpy(p, q, n);
	/* More program code */

}

Note: A possibility of this code being safe would be on architectures where sizeof (int) is equal to sizeof (float).

Compliant Solution // (need to work on this)

...

API00-C. Functions should validate their parameters\

WG14 Document: N1579 - Rule 5.34 Forming Invalid pointers by library functions.

...