1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
--- a/tools/rpcgen/rpc_tblout.c
+++ b/tools/rpcgen/rpc_tblout.c
@@ -82,14 +82,19 @@ write_table (const definition * def)
proc_list *proc;
int current;
int expected;
- char progvers[100];
+ char *progvers;
int warning;
+ int a;
for (vp = def->def.pr.versions; vp != NULL; vp = vp->next)
{
warning = 0;
- s_print (progvers, "%s_%s",
+ a = asprintf (&progvers, "%s_%s",
locase (def->def_name), vp->vers_num);
+ if (a == -1)
+ {
+ return;
+ }
/* print the table header */
f_print (fout, tbl_hdr, progvers);
@@ -146,6 +151,7 @@ write_table (const definition * def)
/* print the table trailer */
f_print (fout, tbl_end);
f_print (fout, tbl_nproc, progvers, progvers, progvers);
+ free (progvers);
}
}
|