github.com/opencontainers/runc@v1.2.0-rc.1.0.20240520010911-492dc558cdd6/libcontainer/nsenter/getenv.c (about) 1 #define _GNU_SOURCE 2 #include <errno.h> 3 #include <stdlib.h> 4 #include "getenv.h" 5 #include "log.h" 6 7 int getenv_int(const char *name) 8 { 9 char *val, *endptr; 10 int ret; 11 12 val = getenv(name); 13 /* Treat empty value as unset variable. */ 14 if (val == NULL || *val == '\0') 15 return -ENOENT; 16 17 ret = strtol(val, &endptr, 10); 18 if (val == endptr || *endptr != '\0') 19 bail("unable to parse %s=%s", name, val); 20 /* 21 * Sanity check: this must be a non-negative number. 22 */ 23 if (ret < 0) 24 bail("bad value for %s=%s (%d)", name, val, ret); 25 26 return ret; 27 }