MCPcopy Create free account
hub / github.com/acl-dev/acl / acl_default_strndup

Function acl_default_strndup

lib_acl/src/stdlib/memory/acl_default_malloc.c:459–498  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

457/* acl_default_strndup - save substring to heap */
458
459char *acl_default_strndup(const char *filename, int line,
460 const char *str, size_t len)
461{
462 const char *myname = "acl_default_strndup";
463 char *result;
464 char *cp;
465 const char *pname = NULL;
466
467 if (filename && *filename) {
468 SET_FILE(pname, filename);
469 } else {
470 pname = __FILENAME_UNKNOWN;
471 }
472
473 if (str == 0) {
474 acl_msg_fatal("%s(%d)->%s: null pointer argument",
475 pname, line, myname);
476 }
477
478#ifndef NO_SHARED_EMPTY_STRINGS
479 if (*str == 0) {
480 return (char *) empty_string;
481 }
482#endif
483
484 if ((cp = (char*) memchr(str, 0, len)) != 0) {
485 len = cp - str;
486 }
487
488#ifdef DEBUG_MEM
489 __nstrndup++;
490#endif
491
492 result = (char*) acl_default_malloc(pname, line, len + 1);
493 if (len > 0) {
494 memcpy(result, str, len);
495 }
496 result[len] = 0;
497 return result;
498}
499
500/* acl_default_memdup - copy memory */
501

Callers

nothing calls this directly

Calls 3

acl_msg_fatalFunction · 0.85
acl_default_mallocFunction · 0.85
memcpyFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…