- if (leaf++ == NULL) leaf = base; \
- sprintf(result, "%.20s: ", leaf); \
- format_version(result + strlen(result)); \
+ if (result == NULL) { \
+ static char unknown[] = "?"; \
+ result = unknown; \
+ } else { \
+ if (leaf++ == NULL) leaf = base; \
+ sprintf(result, "%.20s: ", leaf); \
+ format_version(result + strlen(result)); \
+ } \