From: Ondřej Surý Date: Thu, 21 Aug 2025 21:51:38 +0000 (+0200) Subject: Add and use __attribute__((nonnull)) in dnssec-signzone.c X-Git-Tag: v9.21.12~16^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e350c177403ead4c8a6630a08f36f304b04484c;p=thirdparty%2Fbind9.git Add and use __attribute__((nonnull)) in dnssec-signzone.c Clang 20 is complaining about passing NULL to an argument with 'nonnull' attribute. Mark these two functions with the same attribute to assure that these two function also don't accept NULL as an argument. --- diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 6eb72eebafa..025f5703ffe 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -3085,6 +3085,8 @@ writeset(const char *prefix, dns_rdatatype_t type) { dns_db_detach(&db); } +static void +print_time(FILE *fp) ISC_ATTR_NONNULL(1); static void print_time(FILE *fp) { time_t currenttime = time(NULL); @@ -3101,6 +3103,8 @@ print_time(FILE *fp) { fprintf(fp, "; File written on %s\n", timebuf); } +static void +print_version(FILE *fp) ISC_ATTR_NONNULL(1); static void print_version(FILE *fp) { if (outputformat != dns_masterformat_text) { @@ -3908,6 +3912,7 @@ main(int argc, char *argv[]) { fatal("failed to open temporary output file: %s", isc_result_totext(result)); } + INSIST(outfp != NULL); removefile = true; setfatalcallback(&removetempfile); } diff --git a/lib/isc/include/isc/attributes.h b/lib/isc/include/isc/attributes.h index 96d57f9f497..03c84ae4979 100644 --- a/lib/isc/include/isc/attributes.h +++ b/lib/isc/include/isc/attributes.h @@ -112,3 +112,9 @@ #else #define ISC_ATTR_COUNTED_BY(x) #endif + +#if __has_attribute(__nonnull__) +#define ISC_ATTR_NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else +#define ISC_ATTR_NONNULL(...) +#endif