int
encode_record(glite_renewal_core_context ctx, proxy_record *record, char **line)
{
- char tmp_line[1024];
+ char *tmp_line = NULL;
size_t jobids_len = 0;
- int i;
+ int ret;
- snprintf(tmp_line, sizeof(tmp_line), "suffix=%d, unique=%d, voms_exts=%d, server=%s, next_renewal=%ld, end_time=%ld",
+ ret = asprintf(&tmp_line, "suffix=%d, unique=%d, voms_exts=%d, server=%s, next_renewal=%ld, end_time=%ld",
record->suffix, record->unique, record->voms_exts,
(record->myproxy_server) ? record->myproxy_server : "",
record->next_renewal, record->end_time);
+ if (ret == -1)
+ return ENOMEM;
+
if (record->fqans) {
- strncat(tmp_line, ", fqans=", sizeof(tmp_line));
- strncat(tmp_line, record->fqans, sizeof(tmp_line));
- }
- *line = strdup(tmp_line);
+ char *l;
+ ret = asprintf(&l, "%s, fqans=%s", tmp_line, record->fqans);
+ if (ret == -1) {
+ free(tmp_line);
+ return ENOMEM;
+ }
+ tmp_line = l;
+ }
+ *line = tmp_line;
return 0;
}