A few more cleanups from Vladimir.

This commit is contained in:
Eric Andersen 2001-02-18 20:15:36 +00:00
parent 963791a9e9
commit 12dceb1147

View File

@ -1388,15 +1388,14 @@ extern char * xstrndup (const char *s, int n) {
if (s == NULL) if (s == NULL)
error_msg_and_die("xstrndup bug"); error_msg_and_die("xstrndup bug");
t = xmalloc(n+1); t = xmalloc(++n);
strncpy(t,s,n);
t[n] = 0; return safe_strncpy(t,s,n);
return t;
} }
#endif #endif
#if defined BB_IFCONFIG || defined BB_ROUTE #if defined BB_IFCONFIG || defined BB_ROUTE || defined BB_NFSMOUNT || \
defined BB_FEATURE_MOUNT_LOOP
/* Like strncpy but make sure the resulting string is always 0 terminated. */ /* Like strncpy but make sure the resulting string is always 0 terminated. */
extern char * safe_strncpy(char *dst, const char *src, size_t size) extern char * safe_strncpy(char *dst, const char *src, size_t size)
{ {
@ -1457,8 +1456,7 @@ extern int set_loop(const char *device, const char *file, int offset,
*loopro = (mode == O_RDONLY); *loopro = (mode == O_RDONLY);
memset(&loopinfo, 0, sizeof(loopinfo)); memset(&loopinfo, 0, sizeof(loopinfo));
strncpy(loopinfo.lo_name, file, LO_NAME_SIZE); safe_strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
loopinfo.lo_offset = offset; loopinfo.lo_offset = offset;
@ -1695,7 +1693,7 @@ FILE *wfopen(const char *path, const char *mode)
#if defined BB_HOSTNAME || defined BB_LOADACM || defined BB_MORE \ #if defined BB_HOSTNAME || defined BB_LOADACM || defined BB_MORE \
|| defined BB_SED || defined BB_SH || defined BB_TAR || defined BB_UNIQ \ || defined BB_SED || defined BB_SH || defined BB_TAR || defined BB_UNIQ \
|| defined BB_WC || defined BB_CMP || defined BB_SORT || defined BB_WGET \ || defined BB_WC || defined BB_CMP || defined BB_SORT || defined BB_WGET \
|| defined BB_MOUNT || defined BB_MOUNT || defined BB_ROUTE
FILE *xfopen(const char *path, const char *mode) FILE *xfopen(const char *path, const char *mode)
{ {
FILE *fp; FILE *fp;
@ -1745,15 +1743,21 @@ unsigned long parse_number(const char *numstr,
if (numstr == end) if (numstr == end)
error_msg_and_die("invalid number `%s'", numstr); error_msg_and_die("invalid number `%s'", numstr);
while (end[0] != '\0') { while (end[0] != '\0') {
for (sm = suffixes; sm->suffix != NULL; sm++) { sm = suffixes;
len = strlen(sm->suffix); while ( sm != 0 ) {
if (strncmp(sm->suffix, end, len) == 0) { if(sm->suffix) {
ret *= sm->mult; len = strlen(sm->suffix);
end += len; if (strncmp(sm->suffix, end, len) == 0) {
break; ret *= sm->mult;
} end += len;
break;
}
sm++;
} else
sm = 0;
} }
if (sm->suffix == NULL) if (sm == 0)
error_msg_and_die("invalid number `%s'", numstr); error_msg_and_die("invalid number `%s'", numstr);
} }
return ret; return ret;