summaryrefslogtreecommitdiff
path: root/coreutils/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/expr.c')
-rw-r--r--coreutils/expr.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/coreutils/expr.c b/coreutils/expr.c
index 0299cc7..55ae3a9 100644
--- a/coreutils/expr.c
+++ b/coreutils/expr.c
@@ -146,12 +146,8 @@ static int null (VALUE *v)
static void tostring (VALUE *v)
{
- char *temp;
-
if (v->type == integer) {
- temp = xmalloc (4 * (sizeof (int) / sizeof (char)));
- sprintf (temp, "%d", v->u.i);
- v->u.s = temp;
+ bb_asprintf (&(v->u.s), "%d", v->u.i);
v->type = string;
}
}
@@ -377,9 +373,7 @@ static VALUE *eval6 (void)
else {
v = xmalloc (sizeof(VALUE));
v->type = string;
- v->u.s = strncpy ((char *) xmalloc (i2->u.i + 1),
- l->u.s + i1->u.i - 1, i2->u.i);
- v->u.s[i2->u.i] = 0;
+ v->u.s = xstrndup(l->u.s + i1->u.i - 1, i2->u.i);
}
freev (l);
freev (i1);