aboutsummaryrefslogtreecommitdiff
path: root/src/triplet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/triplet.c')
-rw-r--r--src/triplet.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/triplet.c b/src/triplet.c
index 6bd9e6a..9f051db 100644
--- a/src/triplet.c
+++ b/src/triplet.c
@@ -347,13 +347,14 @@ format_file_data (struct file_triplet *trp, enum file_type type, char **pret)
char *sptr;
size_t slen;
int pad;
char *user_name;
char *group_name;
struct tm *tm;
- char *buf;
+ char *buf = NULL;
+ size_t size = 0;
if (!info->name)
return 1;
/* MODE OWNER GROUP SIZE MTIME FILE_NAME MD5SUM? */
@@ -382,16 +383,18 @@ format_file_data (struct file_triplet *trp, enum file_type type, char **pret)
/* Figure out padding and format the buffer */
slen = strlen (sptr);
pad = strlen (user_name) + 1 + strlen (group_name) + 1 + slen;
if (pad > ugswidth)
ugswidth = pad;
- asprintf (&buf,
- "%s %s %s %*s %s %s",
- modes, user_name, group_name, ugswidth - pad + slen, sptr,
- timebuf, info->name);
+ if (grecs_asprintf (&buf, &size,
+ "%s %s %s %*s %s %s",
+ modes, user_name, group_name, ugswidth - pad + slen,
+ sptr,
+ timebuf, info->name))
+ xalloc_die ();
*pret = buf;
return 0;
}
static const char *
expand_triplet_ls_full (struct metadef *def, void *data)
@@ -542,14 +545,16 @@ expand_user_email (struct metadef *def, void *data)
static const char *
expand_email_user (struct metadef *def, void *data)
{
struct file_triplet *trp = data;
if (trp->uploader)
{
- asprintf (&def->storage, "\"%s\" <%s>",
- trp->uploader->realname, trp->uploader->email);
+ size_t size = 0;
+ if (grecs_asprintf (&def->storage, &size, "\"%s\" <%s>",
+ trp->uploader->realname, trp->uploader->email))
+ xalloc_die ();
def->value = def->storage;
}
return def->value;
}
static const char *
@@ -588,13 +593,16 @@ expand_check_result (struct metadef *def, void *data)
char *p = umaxtostr (WEXITSTATUS (status), sbuf);
def->storage = xstrdup (p);
}
else if (WIFSIGNALED (status))
{
char *p = umaxtostr (WTERMSIG (status), sbuf);
- asprintf (&def->storage, "SIG+%s", p);
+ size_t size = 0;
+ def->storage = NULL;
+ if (grecs_asprintf (&def->storage, &size, "SIG+%s", p))
+ xalloc_die ();
}
else
def->storage = "[unrecognized return code]";
return def->value = def->storage;
}

Return to:

Send suggestions and report system problems to the System administrator.