On 01/08/18 05:36, Julia Lawall wrote: > Check for NULL position and file name. Check for xasprintf failure. > Builds on a patch proposed by Frank Rowand: > > https://www.mail-archive.com/devicetree-compiler@xxxxxxxxxxxxxxx/msg00377.html > > Annotation extension will introduce the possibility of the position > being NULL. > > Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx> > --- > srcpos.c | 35 +++++++++++++++++++++++------------ > 1 file changed, 23 insertions(+), 12 deletions(-) > > diff --git a/srcpos.c b/srcpos.c > index 9d38459..7f2626c 100644 > --- a/srcpos.c > +++ b/srcpos.c > @@ -249,24 +249,35 @@ srcpos_copy(struct srcpos *pos) > char * > srcpos_string(struct srcpos *pos) > { > - const char *fname = "<no-file>"; > + const char *fname; > char *pos_str; > - > - if (pos->file && pos->file->name) > + int rc; > + > + if (!pos) { > + rc = asprintf(&pos_str, "%s:<no-line>", fname); > + goto out; > + } else if (!pos->file) ^^^^^^^^ spaces instead of a tab -Frank > + fname = "<no-file>"; > + else if (!pos->file->name) > + fname = "<no-filename>"; > + else > fname = pos->file->name; > > - > if (pos->first_line != pos->last_line) > - xasprintf(&pos_str, "%s:%d.%d-%d.%d", fname, > - pos->first_line, pos->first_column, > - pos->last_line, pos->last_column); > + rc = xasprintf(&pos_str, "%s:%d.%d-%d.%d", fname, > + pos->first_line, pos->first_column, > + pos->last_line, pos->last_column); > else if (pos->first_column != pos->last_column) > - xasprintf(&pos_str, "%s:%d.%d-%d", fname, > - pos->first_line, pos->first_column, > - pos->last_column); > + rc = xasprintf(&pos_str, "%s:%d.%d-%d", fname, > + pos->first_line, pos->first_column, > + pos->last_column); > else > - xasprintf(&pos_str, "%s:%d.%d", fname, > - pos->first_line, pos->first_column); > + rc = xasprintf(&pos_str, "%s:%d.%d", fname, > + pos->first_line, pos->first_column); > + > +out: > + if (rc == -1) > + die("Couldn't allocate in srcpos string"); > > return pos_str; > } > -- To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html