library: eliminate all dependencies on alloc.h/alloc.c
While that old master branch library may utilize those memory allocation functions found in the alloc module, it was inappropriate for this newlib branch to subject callers to a stderr message followed by an early exit. Of course, the old libprocps offered a message handler override provision (xalloc_err_handler) but that, too, would seem to be inappropriate for our modern library. [ remember the battles fought with that damn libnuma ] So, this commit will tweak those old inherited sources setting the stage for standardized return values/errno settings in connection with a memory allocation error. ------------------------------------------------------ Along the way, we'll address the following miscellany: . Completely eliminate usage of anything from alloc.h. This, of course, entails our own error checking of the alternative allocation calls from stdlib.h & string.h. . Eliminate use of the strdup function where possible, as with 'procps_uptime' and 'procps_loadavg' routines. . Whack some obsolete code (getslabinfo) in sysinfo.c. Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
@@ -70,23 +70,21 @@ PROCPS_EXPORT int procps_uptime(
|
||||
double *restrict idle_secs)
|
||||
{
|
||||
double up=0, idle=0;
|
||||
char *savelocale;
|
||||
char savelocale[128];
|
||||
FILE *fp;
|
||||
|
||||
if ((fp = fopen(UPTIME_FILE, "r")) == NULL)
|
||||
return -errno;
|
||||
|
||||
savelocale = strdup(setlocale(LC_NUMERIC, NULL));
|
||||
snprintf(savelocale, sizeof(savelocale), "%s", setlocale(LC_NUMERIC, NULL));
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
if (fscanf(fp, "%lf %lf", &up, &idle) < 2) {
|
||||
setlocale(LC_NUMERIC, savelocale);
|
||||
free(savelocale);
|
||||
fclose(fp);
|
||||
return -ERANGE;
|
||||
}
|
||||
fclose(fp);
|
||||
setlocale(LC_NUMERIC, savelocale);
|
||||
free(savelocale);
|
||||
if (uptime_secs)
|
||||
*uptime_secs = up;
|
||||
if (idle_secs)
|
||||
|
Reference in New Issue
Block a user