diff --git a/Makefile b/Makefile index 39b17c5f3..519776f94 100644 --- a/Makefile +++ b/Makefile @@ -237,7 +237,13 @@ endif ASTCFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) ifeq ($(AST_DEVMODE),yes) - ASTCFLAGS+=-Werror -Wunused -Wundef $(AST_DECLARATION_AFTER_STATEMENT) -Wmissing-format-attribute -Wformat=2 + ASTCFLAGS+=-Werror + ASTCFLAGS+=-Wunused + ASTCFLAGS+=$(AST_DECLARATION_AFTER_STATEMENT) + ASTCFLAGS+=$(AST_FORTIFY_SOURCE) + ASTCFLAGS+=-Wundef + ASTCFLAGS+=-Wmissing-format-attribute + ASTCFLAGS+=-Wformat=2 endif ifneq ($(findstring BSD,$(OSARCH)),) diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c index e05f21453..408b255a4 100644 --- a/cdr/cdr_tds.c +++ b/cdr/cdr_tds.c @@ -103,7 +103,7 @@ static char *anti_injection(const char *, int); static void get_date(char *, size_t len, struct timeval); static int execute_and_consume(DBPROCESS *dbproc, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); + __attribute__((format(printf, 2, 3))); static int mssql_connect(void); static int mssql_disconnect(void); diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 6c3b838c0..78bdb5a20 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1106,7 +1106,7 @@ static struct ast_channel *agent_new(struct agent_pvt *p, int state) } #endif if (p->pending) - tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", 0, "Agent/P%s-%d", p->agent, ast_random() & 0xffff); + tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", 0, "Agent/P%s-%d", p->agent, (int) ast_random() & 0xffff); else tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", 0, "Agent/%s", p->agent); if (!tmp) { diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 378550a99..bbc08d9e1 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -979,7 +979,7 @@ static void iax_error_output(const char *data) ast_log(LOG_WARNING, "%s", data); } -static void __attribute__((format (printf, 1, 2))) jb_error_output(const char *fmt, ...) +static void __attribute__((format(printf, 1, 2))) jb_error_output(const char *fmt, ...) { va_list args; char buf[1024]; @@ -991,7 +991,7 @@ static void __attribute__((format (printf, 1, 2))) jb_error_output(const char *f ast_log(LOG_ERROR, "%s", buf); } -static void __attribute__((format (printf, 1, 2))) jb_warning_output(const char *fmt, ...) +static void __attribute__((format(printf, 1, 2))) jb_warning_output(const char *fmt, ...) { va_list args; char buf[1024]; @@ -1003,7 +1003,7 @@ static void __attribute__((format (printf, 1, 2))) jb_warning_output(const char ast_log(LOG_WARNING, "%s", buf); } -static void __attribute__((format (printf, 1, 2))) jb_debug_output(const char *fmt, ...) +static void __attribute__((format(printf, 1, 2))) jb_debug_output(const char *fmt, ...) { va_list args; char buf[1024]; diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 4b521c464..c3dde3cf6 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -285,7 +285,7 @@ static pthread_t misdn_tasks_thread; static int *misdn_ports; static void chan_misdn_log(int level, int port, char *tmpl, ...) - __attribute__ ((format (printf, 3, 4))); + __attribute__((format(printf, 3, 4))); static struct ast_channel *misdn_new(struct chan_list *cl, int state, char *exten, char *callerid, int format, int port, int c); static void send_digit_to_chan(struct chan_list *cl, char digit ); diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 6c7bf1970..a60efc524 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2895,7 +2895,7 @@ static struct ast_udptl_protocol sip_udptl = { }; static void append_history_full(struct sip_pvt *p, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); + __attribute__((format(printf, 2, 3))); /*! \brief Convert transfer status to string */ @@ -3206,9 +3206,9 @@ static void build_via(struct sip_pvt *p) /* z9hG4bK is a magic cookie. See RFC 3261 section 8.1.1.7 */ ast_string_field_build(p, via, "SIP/2.0/%s %s:%d;branch=z9hG4bK%08x%s", - get_transport_pvt(p), - ast_inet_ntoa(p->ourip.sin_addr), - ntohs(p->ourip.sin_port), p->branch, rport); + get_transport_pvt(p), + ast_inet_ntoa(p->ourip.sin_addr), + ntohs(p->ourip.sin_port), (int) p->branch, rport); } /*! \brief NAT fix - decide which IP address to use for Asterisk server? @@ -3269,7 +3269,7 @@ static void ast_sip_ouraddrfor(struct in_addr *them, struct sockaddr_in *us) } /*! \brief Append to SIP dialog history with arg list */ -static __attribute__((format (printf, 2, 0))) void append_history_va(struct sip_pvt *p, const char *fmt, va_list ap) +static __attribute__((format(printf, 2, 0))) void append_history_va(struct sip_pvt *p, const char *fmt, va_list ap) { char buf[80], *c = buf; /* max history length */ struct sip_history *hist; diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc index f72231276..e611ab097 100644 --- a/channels/chan_vpb.cc +++ b/channels/chan_vpb.cc @@ -2478,7 +2478,7 @@ static struct ast_channel *vpb_new(struct vpb_pvt *me, enum ast_channel_state st } ast_verb(4, "%s: New call for context [%s]\n", me->dev, context); - tmp = ast_channel_alloc(1, state, 0, 0, "", me->ext, me->context, 0, me->dev); + tmp = ast_channel_alloc(1, state, 0, 0, "", me->ext, me->context, 0, "%s", me->dev); if (tmp) { if (use_ast_ind == 1){ tmp->tech = &vpb_tech_indicate; diff --git a/configure b/configure index de4cc7c00..c0b79795d 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 157820 . +# From configure.ac Revision: 159631 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for asterisk 1.6. # @@ -975,6 +975,7 @@ PBX_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP GC_CFLAGS GC_LDFLAGS AST_DECLARATION_AFTER_STATEMENT +AST_FORTIFY_SOURCE AST_NO_STRICT_OVERFLOW AST_SHADOW_WARNINGS PBX_RTLD_NOLOAD @@ -18327,6 +18328,19 @@ echo "${ECHO_T}no" >&6; } fi +{ echo "$as_me:$LINENO: checking for _FORTIFY_SOURCE support" >&5 +echo $ECHO_N "checking for _FORTIFY_SOURCE support... $ECHO_C" >&6; } +if $(${CC} -D_FORTIFY_SOURCE=2 -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + AST_FORTIFY_SOURCE=-D_FORTIFY_SOURCE=2 +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + AST_FORTIFY_SOURCE= +fi + + { echo "$as_me:$LINENO: checking for -fno-strict-overflow" >&5 echo $ECHO_N "checking for -fno-strict-overflow... $ECHO_C" >&6; } if $(${CC} -O2 -fno-strict-overflow -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then @@ -53372,6 +53386,7 @@ PBX_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP!$PBX_PTHREAD_RECURSIVE_MUTEX_INITIALI GC_CFLAGS!$GC_CFLAGS$ac_delim GC_LDFLAGS!$GC_LDFLAGS$ac_delim AST_DECLARATION_AFTER_STATEMENT!$AST_DECLARATION_AFTER_STATEMENT$ac_delim +AST_FORTIFY_SOURCE!$AST_FORTIFY_SOURCE$ac_delim AST_NO_STRICT_OVERFLOW!$AST_NO_STRICT_OVERFLOW$ac_delim AST_SHADOW_WARNINGS!$AST_SHADOW_WARNINGS$ac_delim PBX_RTLD_NOLOAD!$PBX_RTLD_NOLOAD$ac_delim @@ -53403,7 +53418,6 @@ PBX_H323!$PBX_H323$ac_delim PBX_IXJUSER!$PBX_IXJUSER$ac_delim CONFIG_SDL!$CONFIG_SDL$ac_delim CONFIG_GTK!$CONFIG_GTK$ac_delim -PKGCONFIG!$PKGCONFIG$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -53445,11 +53459,12 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +PKGCONFIG!$PKGCONFIG$ac_delim CURL_CONFIG!$CURL_CONFIG$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 2; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 3; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.ac b/configure.ac index 30113c154..26c6e5a28 100644 --- a/configure.ac +++ b/configure.ac @@ -515,6 +515,16 @@ else fi AC_SUBST(AST_DECLARATION_AFTER_STATEMENT) +AC_MSG_CHECKING(for _FORTIFY_SOURCE support) +if $(${CC} -D_FORTIFY_SOURCE=2 -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then + AC_MSG_RESULT(yes) + AST_FORTIFY_SOURCE=-D_FORTIFY_SOURCE=2 +else + AC_MSG_RESULT(no) + AST_FORTIFY_SOURCE= +fi +AC_SUBST(AST_FORTIFY_SOURCE) + AC_MSG_CHECKING(for -fno-strict-overflow) if $(${CC} -O2 -fno-strict-overflow -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then AC_MSG_RESULT(yes) diff --git a/include/asterisk/astmm.h b/include/asterisk/astmm.h index 5d0d47ff5..553587942 100644 --- a/include/asterisk/astmm.h +++ b/include/asterisk/astmm.h @@ -51,9 +51,9 @@ void *__ast_realloc(void *ptr, size_t size, const char *file, int lineno, const char *__ast_strdup(const char *s, const char *file, int lineno, const char *func); char *__ast_strndup(const char *s, size_t n, const char *file, int lineno, const char *func); int __ast_asprintf(const char *file, int lineno, const char *func, char **strp, const char *format, ...) - __attribute__ ((format (printf, 5, 6))); + __attribute__((format(printf, 5, 6))); int __ast_vasprintf(char **strp, const char *format, va_list ap, const char *file, int lineno, const char *func) - __attribute__ ((format (printf, 2, 0))); + __attribute__((format(printf, 2, 0))); void __ast_mm_init(void); diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 2c2cad6cf..ae785a298 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -644,14 +644,14 @@ enum channelreloadreason { * \deprecated You should use the ast_datastore_alloc() generic function instead. */ struct ast_datastore *ast_channel_datastore_alloc(const struct ast_datastore_info *info, const char *uid) - __attribute__ ((deprecated)); + __attribute__((deprecated)); /*! * \brief Free a channel data store object * \deprecated You should use the ast_datastore_free() generic function instead. */ int ast_channel_datastore_free(struct ast_datastore *datastore) - __attribute__ ((deprecated)); + __attribute__((deprecated)); /*! \brief Inherit datastores from a parent to a child. */ int ast_channel_datastore_inherit(struct ast_channel *from, struct ast_channel *to); @@ -702,7 +702,7 @@ int ast_setstate(struct ast_channel *chan, enum ast_channel_state); * \note By default, new channels are set to the "s" extension * and "default" context. */ -struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_num, const char *cid_name, const char *acctcode, const char *exten, const char *context, const int amaflag, const char *name_fmt, ...); +struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_num, const char *cid_name, const char *acctcode, const char *exten, const char *context, const int amaflag, const char *name_fmt, ...) __attribute__((format(printf, 9, 10))); /*! * \brief Queue an outgoing frame @@ -921,7 +921,7 @@ int ast_check_hangup(struct ast_channel *chan); * is earlier than current time plus the offset, it returns 1, if the two * time values are equal, it return 0, otherwise, it return -1. */ -int ast_channel_cmpwhentohangup(struct ast_channel *chan, time_t offset) __attribute__ ((deprecated)); +int ast_channel_cmpwhentohangup(struct ast_channel *chan, time_t offset) __attribute__((deprecated)); int ast_channel_cmpwhentohangup_tv(struct ast_channel *chan, struct timeval offset); /*! \brief Set when to hang a channel up @@ -936,7 +936,7 @@ int ast_channel_cmpwhentohangup_tv(struct ast_channel *chan, struct timeval offs * * \return Nothing */ -void ast_channel_setwhentohangup(struct ast_channel *chan, time_t offset) __attribute__ ((deprecated)); +void ast_channel_setwhentohangup(struct ast_channel *chan, time_t offset) __attribute__((deprecated)); void ast_channel_setwhentohangup_tv(struct ast_channel *chan, struct timeval offset); /*! diff --git a/include/asterisk/cli.h b/include/asterisk/cli.h index 8b337aea1..535b4e6af 100644 --- a/include/asterisk/cli.h +++ b/include/asterisk/cli.h @@ -30,7 +30,7 @@ extern "C" { #include "asterisk/linkedlists.h" void ast_cli(int fd, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); + __attribute__((format(printf, 2, 3))); #define RESULT_SUCCESS 0 #define RESULT_SHOWUSAGE 1 diff --git a/include/asterisk/compat.h b/include/asterisk/compat.h index 0b431f5e0..572bb145b 100644 --- a/include/asterisk/compat.h +++ b/include/asterisk/compat.h @@ -74,7 +74,7 @@ #endif #if !defined(HAVE_ASPRINTF) && !defined(__AST_DEBUG_MALLOC) -int __attribute__ ((format (printf, 2, 3))) asprintf(char **str, const char *fmt, ...); +int __attribute__((format(printf, 2, 3))) asprintf(char **str, const char *fmt, ...); #endif #ifndef HAVE_GETLOADAVG @@ -110,7 +110,7 @@ int unsetenv(const char *name); #endif #if !defined(HAVE_VASPRINTF) && !defined(__AST_DEBUG_MALLOC) -int __attribute__ ((format (printf, 2, 0))) vasprintf(char **strp, const char *fmt, va_list ap); +int __attribute__((format(printf, 2, 0))) vasprintf(char **strp, const char *fmt, va_list ap); #endif #ifndef HAVE_STRLCAT diff --git a/include/asterisk/config.h b/include/asterisk/config.h index 15157e239..b1177317c 100644 --- a/include/asterisk/config.h +++ b/include/asterisk/config.h @@ -389,7 +389,7 @@ int ast_variable_update(struct ast_category *category, const char *variable, const char *value, const char *match, unsigned int object); int ast_config_text_file_save(const char *filename, const struct ast_config *cfg, const char *generator); -int config_text_file_save(const char *filename, const struct ast_config *cfg, const char *generator) __attribute__ ((deprecated)); +int config_text_file_save(const char *filename, const struct ast_config *cfg, const char *generator) __attribute__((deprecated)); struct ast_config *ast_config_internal_load(const char *configfile, struct ast_config *cfg, struct ast_flags flags, const char *suggested_incl_file, const char *who_asked); diff --git a/include/asterisk/devicestate.h b/include/asterisk/devicestate.h index bacf54648..839272732 100644 --- a/include/asterisk/devicestate.h +++ b/include/asterisk/devicestate.h @@ -73,7 +73,7 @@ enum ast_device_state ast_state_chan2dev(enum ast_channel_state chanstate); * * \param devstate Current device state */ -const char *devstate2str(enum ast_device_state devstate) attribute_pure __attribute__ ((deprecated)); +const char *devstate2str(enum ast_device_state devstate) attribute_pure __attribute__((deprecated)); const char *ast_devstate2str(enum ast_device_state devstate) attribute_pure; /*! @@ -135,7 +135,7 @@ enum ast_device_state ast_device_state(const char *device); * \retval -1 on failure */ int ast_devstate_changed(enum ast_device_state state, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); + __attribute__((format(printf, 2, 3))); /*! * \brief Tells Asterisk the State for Device is changed @@ -166,7 +166,7 @@ int ast_devstate_changed_literal(enum ast_device_state state, const char *device * \note This is deprecated in favor of ast_devstate_changed() */ int ast_device_state_changed(const char *fmt, ...) - __attribute__ ((deprecated,format (printf, 1, 2))); + __attribute__((deprecated,format(printf, 1, 2))); /*! * \brief Tells Asterisk the State for Device is changed @@ -182,7 +182,7 @@ int ast_device_state_changed(const char *fmt, ...) * \note This is deprecated in favor of ast_devstate_changed_literal() */ int ast_device_state_changed_literal(const char *device) - __attribute__ ((deprecated)); + __attribute__((deprecated)); /*! * \brief Add device state provider diff --git a/include/asterisk/dlinkedlists.h b/include/asterisk/dlinkedlists.h index 2f42fdd39..17bd7a43c 100644 --- a/include/asterisk/dlinkedlists.h +++ b/include/asterisk/dlinkedlists.h @@ -253,11 +253,11 @@ struct name { \ struct type *last; \ ast_mutex_t lock; \ } name; \ -static void __attribute__ ((constructor)) __init_##name(void) \ +static void __attribute__((constructor)) __init_##name(void) \ { \ AST_DLLIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) __fini_##name(void) \ +static void __attribute__((destructor)) __fini_##name(void) \ { \ AST_DLLIST_HEAD_DESTROY(&name); \ } \ @@ -295,11 +295,11 @@ struct name { \ struct type *last; \ ast_rwlock_t lock; \ } name; \ -static void __attribute__ ((constructor)) __init_##name(void) \ +static void __attribute__((constructor)) __init_##name(void) \ { \ AST_RWDLLIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) __fini_##name(void) \ +static void __attribute__((destructor)) __fini_##name(void) \ { \ AST_RWDLLIST_HEAD_DESTROY(&name); \ } \ diff --git a/include/asterisk/dundi.h b/include/asterisk/dundi.h index c2a85493e..2bffd0246 100644 --- a/include/asterisk/dundi.h +++ b/include/asterisk/dundi.h @@ -39,13 +39,13 @@ struct dundi_hdr { unsigned char cmdresp; /*!< Command / Response */ unsigned char cmdflags; /*!< Command / Response specific flags*/ unsigned char ies[0]; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); struct dundi_ie_hdr { unsigned char ie; unsigned char len; unsigned char iedata[0]; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); #define DUNDI_FLAG_RETRANS (1 << 16) /*!< Applies to dtrans */ #define DUNDI_FLAG_RESERVED (1 << 16) /*!< Applies to strans */ @@ -97,7 +97,7 @@ enum { struct dundi_encblock { /*!< AES-128 encrypted block */ unsigned char iv[16]; /*!< Initialization vector of random data */ unsigned char encdata[0]; /*!< Encrypted / compressed data */ -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); struct dundi_answer { dundi_eid eid; /*!< Original source of answer */ @@ -105,12 +105,12 @@ struct dundi_answer { unsigned short flags; /*!< Flags relating to answer */ unsigned short weight; /*!< Weight of answers */ unsigned char data[0]; /*!< Protocol specific URI */ -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); struct dundi_hint { unsigned short flags; /*!< Flags relating to answer */ unsigned char data[0]; /*!< For data for hint */ -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); enum { /*! Success */ @@ -134,14 +134,14 @@ enum { struct dundi_cause { unsigned char causecode; /*!< Numerical cause (DUNDI_CAUSE_*) */ char desc[0]; /*!< Textual description */ -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); struct dundi_peer_status { unsigned int flags; unsigned short netlag; unsigned short querylag; dundi_eid peereid; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); enum { DUNDI_PEER_PRIMARY = (1 << 0), diff --git a/include/asterisk/enum.h b/include/asterisk/enum.h index 499e34673..d19368905 100644 --- a/include/asterisk/enum.h +++ b/include/asterisk/enum.h @@ -28,7 +28,7 @@ struct naptr { unsigned short order; unsigned short pref; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); struct enum_naptr_rr { struct naptr naptr; /*!< order and preference of RR */ diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h index 5e8f70c34..f49150a50 100644 --- a/include/asterisk/linkedlists.h +++ b/include/asterisk/linkedlists.h @@ -248,11 +248,11 @@ struct name { \ struct type *last; \ ast_mutex_t lock; \ } name; \ -static void __attribute__ ((constructor)) __init_##name(void) \ +static void __attribute__((constructor)) __init_##name(void) \ { \ AST_LIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) __fini_##name(void) \ +static void __attribute__((destructor)) __fini_##name(void) \ { \ AST_LIST_HEAD_DESTROY(&name); \ } \ @@ -290,11 +290,11 @@ struct name { \ struct type *last; \ ast_rwlock_t lock; \ } name; \ -static void __attribute__ ((constructor)) __init_##name(void) \ +static void __attribute__((constructor)) __init_##name(void) \ { \ AST_RWLIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) __fini_##name(void) \ +static void __attribute__((destructor)) __fini_##name(void) \ { \ AST_RWLIST_HEAD_DESTROY(&name); \ } \ diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index ae81fe46e..8b48da9b2 100644 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -1622,7 +1622,7 @@ static inline int ast_rwlock_trywrlock(ast_rwlock_t *prwlock) */ #define __AST_MUTEX_DEFINE(scope, mutex, init_val, track) \ scope ast_mutex_t mutex = init_val; \ -static void __attribute__ ((constructor)) init_##mutex(void) \ +static void __attribute__((constructor)) init_##mutex(void) \ { \ if (track) \ ast_mutex_init(&mutex); \ @@ -1630,7 +1630,7 @@ static void __attribute__ ((constructor)) init_##mutex(void) \ ast_mutex_init_notracking(&mutex); \ } \ \ -static void __attribute__ ((destructor)) fini_##mutex(void) \ +static void __attribute__((destructor)) fini_##mutex(void) \ { \ ast_mutex_destroy(&mutex); \ } @@ -1671,14 +1671,14 @@ static void __attribute__ ((destructor)) fini_##mutex(void) \ #ifdef AST_MUTEX_INIT_W_CONSTRUCTORS #define __AST_RWLOCK_DEFINE(scope, rwlock, init_val, track) \ scope ast_rwlock_t rwlock = init_val; \ -static void __attribute__ ((constructor)) init_##rwlock(void) \ +static void __attribute__((constructor)) init_##rwlock(void) \ { \ if (track) \ ast_rwlock_init(&rwlock); \ else \ ast_rwlock_init_notracking(&rwlock); \ } \ -static void __attribute__ ((destructor)) fini_##rwlock(void) \ +static void __attribute__((destructor)) fini_##rwlock(void) \ { \ ast_rwlock_destroy(&rwlock); \ } diff --git a/include/asterisk/logger.h b/include/asterisk/logger.h index 91be73181..06f3f5206 100644 --- a/include/asterisk/logger.h +++ b/include/asterisk/logger.h @@ -58,15 +58,14 @@ extern "C" { */ void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) - __attribute__ ((format (printf, 5, 6))); + __attribute__((format(printf, 5, 6))); void ast_backtrace(void); /*! \brief Reload logger without rotating log files */ int logger_reload(void); -void ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...) - __attribute__ ((format (printf, 5, 6))); +void __attribute__((format(printf, 5, 6))) ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...); /*! Send a verbose message (based on verbose level) \brief This works like ast_log, but prints verbose messages to the console depending on verbosity level set. @@ -75,17 +74,15 @@ void ast_queue_log(const char *queuename, const char *callid, const char *agent, Note the abscence of a comma after the VERBOSE_PREFIX_3. This is important. VERBOSE_PREFIX_1 through VERBOSE_PREFIX_3 are defined. */ -void __ast_verbose(const char *file, int line, const char *func, const char *fmt, ...) - __attribute__ ((format (printf, 4, 5))); +void __attribute__((format(printf, 4, 5))) __ast_verbose(const char *file, int line, const char *func, const char *fmt, ...); #define ast_verbose(...) __ast_verbose(__FILE__, __LINE__, __PRETTY_FUNCTION__, __VA_ARGS__) -void __ast_verbose_ap(const char *file, int line, const char *func, const char *fmt, va_list ap); +void __attribute__((format(printf, 4, 0))) __ast_verbose_ap(const char *file, int line, const char *func, const char *fmt, va_list ap); #define ast_verbose_ap(fmt, ap) __ast_verbose_ap(__FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, ap) -void ast_child_verbose(int level, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); +void __attribute__((format(printf, 2, 3))) ast_child_verbose(int level, const char *fmt, ...); int ast_register_verbose(void (*verboser)(const char *string)) attribute_warn_unused_result; int ast_unregister_verbose(void (*verboser)(const char *string)) attribute_warn_unused_result; diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 12e23e164..13d331f93 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -181,7 +181,7 @@ int astman_verify_session_writepermissions(uint32_t ident, int perm); #define manager_event(category, event, contents , ...) \ __manager_event(category, event, __FILE__, __LINE__, __PRETTY_FUNCTION__, contents , ## __VA_ARGS__) -int __attribute__ ((format(printf, 6, 7))) __manager_event(int category, const char *event, +int __attribute__((format(printf, 6, 7))) __manager_event(int category, const char *event, const char *file, int line, const char *func, const char *contents, ...); @@ -203,7 +203,7 @@ void astman_send_ack(struct mansession *s, const struct message *m, char *msg); /*! \brief Send ack in manager list transaction */ void astman_send_listack(struct mansession *s, const struct message *m, char *msg, char *listflag); -void __attribute__ ((format (printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); +void __attribute__((format(printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); /*! \brief Determinie if a manager session ident is authenticated */ int astman_is_authed(uint32_t ident); diff --git a/include/asterisk/module.h b/include/asterisk/module.h index 640c5af32..c952db448 100644 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -250,11 +250,11 @@ void ast_module_unref(struct ast_module *); flags_to_set, \ AST_BUILDOPT_SUM, \ }; \ - static void __attribute__ ((constructor)) __reg_module(void) \ + static void __attribute__((constructor)) __reg_module(void) \ { \ ast_module_register(&__mod_info); \ } \ - static void __attribute__ ((destructor)) __unreg_module(void) \ + static void __attribute__((destructor)) __unreg_module(void) \ { \ ast_module_unregister(&__mod_info); \ } \ @@ -344,11 +344,11 @@ static void __restore_globals(void) .buildopt_sum = AST_BUILDOPT_SUM, \ fields \ }; \ - static void __attribute__ ((constructor)) __reg_module(void) \ + static void __attribute__((constructor)) __reg_module(void) \ { \ ast_module_register(&__mod_info); \ } \ - static void __attribute__ ((destructor)) __unreg_module(void) \ + static void __attribute__((destructor)) __unreg_module(void) \ { \ ast_module_unregister(&__mod_info); \ } \ diff --git a/include/asterisk/res_odbc.h b/include/asterisk/res_odbc.h index d90dbba9f..ad22045db 100644 --- a/include/asterisk/res_odbc.h +++ b/include/asterisk/res_odbc.h @@ -91,7 +91,7 @@ struct odbc_cache_tables { * This function really only ever worked with MySQL, where the statement handle is * not prepared on the server. If you are not using MySQL, you should avoid it. */ -int ast_odbc_smart_execute(struct odbc_obj *obj, SQLHSTMT stmt) __attribute__ ((deprecated)); +int ast_odbc_smart_execute(struct odbc_obj *obj, SQLHSTMT stmt) __attribute__((deprecated)); /*! * \brief Retrieves a connected ODBC object diff --git a/include/asterisk/stringfields.h b/include/asterisk/stringfields.h index b0cda6902..4b1847415 100644 --- a/include/asterisk/stringfields.h +++ b/include/asterisk/stringfields.h @@ -183,7 +183,7 @@ ast_string_field __ast_string_field_alloc_space(struct ast_string_field_mgr *mgr */ void __ast_string_field_ptr_build(struct ast_string_field_mgr *mgr, struct ast_string_field_pool **pool_head, - const ast_string_field *ptr, const char *format, ...); + const ast_string_field *ptr, const char *format, ...) __attribute((format(printf, 4, 5))); /*! \internal @@ -198,7 +198,7 @@ void __ast_string_field_ptr_build(struct ast_string_field_mgr *mgr, */ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr, struct ast_string_field_pool **pool_head, - const ast_string_field *ptr, const char *format, va_list a1, va_list a2); + const ast_string_field *ptr, const char *format, va_list a1, va_list a2) __attribute((format(printf, 4, 0))); /*! \brief Declare a string field diff --git a/include/asterisk/strings.h b/include/asterisk/strings.h index 7c25ecd5e..43d5bfc41 100644 --- a/include/asterisk/strings.h +++ b/include/asterisk/strings.h @@ -217,7 +217,7 @@ void ast_copy_string(char *dst, const char *src, size_t size), \retval 0 on success \retval non-zero on failure. */ -int ast_build_string(char **buffer, size_t *space, const char *fmt, ...) __attribute__ ((format (printf, 3, 4))); +int ast_build_string(char **buffer, size_t *space, const char *fmt, ...) __attribute__((format(printf, 3, 4))); /*! \brief Build a string in a buffer, designed to be called repeatedly @@ -231,7 +231,7 @@ int ast_build_string(char **buffer, size_t *space, const char *fmt, ...) __attri \param fmt printf-style format string \param ap varargs list of arguments for format */ -int ast_build_string_va(char **buffer, size_t *space, const char *fmt, va_list ap) __attribute__((format (printf, 3, 0))); +int ast_build_string_va(char **buffer, size_t *space, const char *fmt, va_list ap) __attribute__((format(printf, 3, 0))); /*! * \brief Make sure something is true. @@ -597,8 +597,8 @@ enum { * through calling one of the other functions or macros defined in this * file. */ -int __ast_str_helper(struct ast_str **buf, size_t max_len, - int append, const char *fmt, va_list ap); +int __attribute__((format(printf, 4, 0))) __ast_str_helper(struct ast_str **buf, size_t max_len, + int append, const char *fmt, va_list ap); /*! * \brief Set a dynamic string from a va_list @@ -638,7 +638,7 @@ int __ast_str_helper(struct ast_str **buf, size_t max_len, * } * \endcode */ -AST_INLINE_API(int ast_str_set_va(struct ast_str **buf, size_t max_len, const char *fmt, va_list ap), +AST_INLINE_API(int __attribute__((format(printf, 3, 0))) ast_str_set_va(struct ast_str **buf, size_t max_len, const char *fmt, va_list ap), { return __ast_str_helper(buf, max_len, 0, fmt, ap); } @@ -649,7 +649,7 @@ AST_INLINE_API(int ast_str_set_va(struct ast_str **buf, size_t max_len, const ch * * Same as ast_str_set_va(), but append to the current content. */ -AST_INLINE_API(int ast_str_append_va(struct ast_str **buf, size_t max_len, const char *fmt, va_list ap), +AST_INLINE_API(int __attribute__((format(printf, 3, 0))) ast_str_append_va(struct ast_str **buf, size_t max_len, const char *fmt, va_list ap), { return __ast_str_helper(buf, max_len, 1, fmt, ap); } @@ -673,7 +673,7 @@ AST_INLINE_API(int ast_str_append_va(struct ast_str **buf, size_t max_len, const * All the rest is the same as ast_str_set_va() */ AST_INLINE_API( -int __attribute__ ((format (printf, 3, 4))) ast_str_set( +int __attribute__((format(printf, 3, 4))) ast_str_set( struct ast_str **buf, size_t max_len, const char *fmt, ...), { int res; @@ -694,7 +694,7 @@ int __attribute__ ((format (printf, 3, 4))) ast_str_set( * ast_str_set(), but the new data is appended to the current value. */ AST_INLINE_API( -int __attribute__ ((format (printf, 3, 4))) ast_str_append( +int __attribute__((format(printf, 3, 4))) ast_str_append( struct ast_str **buf, size_t max_len, const char *fmt, ...), { int res; diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index ed69de6ce..3737ef9c2 100644 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -554,7 +554,7 @@ char * attribute_malloc _ast_strndup(const char *str, size_t len, const char *fi #define ast_asprintf(ret, fmt, ...) \ _ast_asprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, __VA_ARGS__) -int __attribute__((format (printf, 5, 6))) +int __attribute__((format(printf, 5, 6))) _ast_asprintf(char **ret, const char *file, int lineno, const char *func, const char *fmt, ...); /*! @@ -569,7 +569,7 @@ int __attribute__((format (printf, 5, 6))) _ast_vasprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, (fmt), (ap)) AST_INLINE_API( -__attribute__((format (printf, 5, 0))) +__attribute__((format(printf, 5, 0))) int _ast_vasprintf(char **ret, const char *file, int lineno, const char *func, const char *fmt, va_list ap), { int res; @@ -676,7 +676,7 @@ static void force_inline _ast_assert(int condition, const char *condition_str, */ struct ast_eid { unsigned char eid[6]; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); /*! * \brief Global EID diff --git a/include/jitterbuf.h b/include/jitterbuf.h index 00f26e21c..6da11a65b 100644 --- a/include/jitterbuf.h +++ b/include/jitterbuf.h @@ -163,7 +163,7 @@ enum jb_return_code jb_getinfo(jitterbuf *jb, jb_info *stats); /*! \brief set jitterbuf conf */ enum jb_return_code jb_setconf(jitterbuf *jb, jb_conf *conf); -typedef void __attribute__((format (printf, 1, 2))) (*jb_output_function_t)(const char *fmt, ...); +typedef void __attribute__((format(printf, 1, 2))) (*jb_output_function_t)(const char *fmt, ...); void jb_setoutput(jb_output_function_t err, jb_output_function_t warn, jb_output_function_t dbg); #ifdef __cplusplus diff --git a/main/ast_expr2.c b/main/ast_expr2.c index 37f4108bd..aabc39a42 100644 --- a/main/ast_expr2.c +++ b/main/ast_expr2.c @@ -372,7 +372,7 @@ enum valtype { } ; #ifdef STANDALONE -void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__ ((format (printf,5,6))); +void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__((format(printf,5,6))); #endif struct val { diff --git a/main/dns.c b/main/dns.c index ad1673830..66c21b367 100644 --- a/main/dns.c +++ b/main/dns.c @@ -156,7 +156,7 @@ struct dn_answer { unsigned short class; unsigned int ttl; unsigned short size; -} __attribute__ ((__packed__)); +} __attribute__((__packed__)); static int skip_name(unsigned char *s, int len) { diff --git a/main/event.c b/main/event.c index 8496ff8bf..956ce6f91 100644 --- a/main/event.c +++ b/main/event.c @@ -52,7 +52,7 @@ struct ast_event_ie { /*! Total length of the IE payload */ uint16_t ie_payload_len; unsigned char ie_payload[0]; -} __attribute__ ((packed)); +} __attribute__((packed)); /*! * \brief An event @@ -72,7 +72,7 @@ struct ast_event { uint16_t event_len:16; /*! The data payload of the event, made up of information elements */ unsigned char payload[0]; -} __attribute__ ((packed)); +} __attribute__((packed)); struct ast_event_ref { struct ast_event *event; diff --git a/main/features.c b/main/features.c index af5754efe..1df9982db 100644 --- a/main/features.c +++ b/main/features.c @@ -334,7 +334,7 @@ static void check_goto_on_transfer(struct ast_channel *chan) goto_on_transfer = ast_strdupa(val); - if (!(xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, chan->name))) + if (!(xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, "%s", chan->name))) return; for (x = goto_on_transfer; x && *x; x++) { diff --git a/main/logger.c b/main/logger.c index 2c312eecc..58813edda 100644 --- a/main/logger.c +++ b/main/logger.c @@ -1298,7 +1298,7 @@ void __ast_verbose(const char *file, int line, const char *func, const char *fmt /* No new code should use this directly, but we have the ABI for backwards compat */ #undef ast_verbose -void ast_verbose(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +void __attribute__((format(printf, 1,2))) ast_verbose(const char *fmt, ...); void ast_verbose(const char *fmt, ...) { va_list ap; diff --git a/main/srv.c b/main/srv.c index 1899e8b8f..664062b64 100644 --- a/main/srv.c +++ b/main/srv.c @@ -73,7 +73,7 @@ static int parse_srv(unsigned char *answer, int len, unsigned char *msg, struct unsigned short priority; unsigned short weight; unsigned short port; - } __attribute__ ((__packed__)) *srv = (struct srv *) answer; + } __attribute__((__packed__)) *srv = (struct srv *) answer; int res = 0; char repl[256] = ""; diff --git a/main/utils.c b/main/utils.c index 0101d93ed..424504588 100644 --- a/main/utils.c +++ b/main/utils.c @@ -1537,7 +1537,6 @@ int __ast_string_field_ptr_grow(struct ast_string_field_mgr *mgr, size_t needed, return 0; } -__attribute((format (printf, 4, 0))) void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr, struct ast_string_field_pool **pool_head, const ast_string_field *ptr, const char *format, va_list ap1, va_list ap2) @@ -1569,7 +1568,6 @@ void __ast_string_field_ptr_build_va(struct ast_string_field_mgr *mgr, mgr->used += needed; } -__attribute((format (printf, 4, 5))) void __ast_string_field_ptr_build(struct ast_string_field_mgr *mgr, struct ast_string_field_pool **pool_head, const ast_string_field *ptr, const char *format, ...) @@ -1661,7 +1659,6 @@ int ast_get_time_t(const char *src, time_t *dst, time_t _default, int *consumed) * ast_str_append_va(...) */ -__attribute__((format (printf, 4, 0))) int __ast_str_helper(struct ast_str **buf, size_t max_len, int append, const char *fmt, va_list ap) { diff --git a/main/xmldoc.c b/main/xmldoc.c index 273ddc6ca..55b61ed77 100644 --- a/main/xmldoc.c +++ b/main/xmldoc.c @@ -510,7 +510,7 @@ static struct ast_xml_node *xmldoc_get_node(const char *type, const char *name, * \param syntax Output buffer for the concatenated values. * \param fmt A format string that will be used in a sprintf call. */ -static __attribute__((format(printf,4,5))) void xmldoc_reverse_helper(int reverse, int *len, char **syntax, const char *fmt, ...) +static void __attribute__((format(printf, 4, 5))) xmldoc_reverse_helper(int reverse, int *len, char **syntax, const char *fmt, ...) { int totlen, tmpfmtlen; char *tmpfmt, tmp; diff --git a/makeopts.in b/makeopts.in index 0c0ee3327..09020e59b 100644 --- a/makeopts.in +++ b/makeopts.in @@ -68,6 +68,7 @@ AST_DEVMODE=@AST_DEVMODE@ AST_DECLARATION_AFTER_STATEMENT=@AST_DECLARATION_AFTER_STATEMENT@ AST_NO_STRICT_OVERFLOW=@AST_NO_STRICT_OVERFLOW@ AST_SHADOW_WARNINGS=@AST_SHADOW_WARNINGS@ +AST_FORTIFY_SOURCE=@AST_FORTIFY_SOURCE@ ALSA_INCLUDE=@ALSA_INCLUDE@ ALSA_LIB=@ALSA_LIB@ diff --git a/utils/astman.c b/utils/astman.c index e116d6165..6bb4c4c6f 100644 --- a/utils/astman.c +++ b/utils/astman.c @@ -147,7 +147,7 @@ static void del_chan(char *name) } -static void __attribute__((format (printf, 2, 3))) fdprintf(int fd, char *fmt, ...) +static void __attribute__((format(printf, 2, 3))) fdprintf(int fd, char *fmt, ...) { char stuff[4096]; va_list ap; @@ -417,7 +417,7 @@ static struct message *wait_for_response(int timeout) } -static int __attribute__((format (printf, 2, 3))) manager_action(char *action, char *fmt, ...) +static int __attribute__((format(printf, 2, 3))) manager_action(char *action, char *fmt, ...) { struct ast_mansession *s; char tmp[4096]; diff --git a/utils/check_expr.c b/utils/check_expr.c index e533e381a..ab1cee19a 100644 --- a/utils/check_expr.c +++ b/utils/check_expr.c @@ -40,7 +40,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") * ast_str_set_va(...) * ast_str_append_va(...) */ -int __attribute__((format (printf, 4, 0))) __ast_str_helper(struct ast_str **buf, size_t max_len, +int __attribute__((format(printf, 4, 0))) __ast_str_helper(struct ast_str **buf, size_t max_len, int append, const char *fmt, va_list ap) { int res, need; @@ -148,7 +148,7 @@ struct varz *global_varlist; /* Our own version of ast_log, since the expr parser uses it. */ -void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__ ((format (printf,5,6))); +void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__((format(printf,5,6))); void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) { diff --git a/utils/conf2ael.c b/utils/conf2ael.c index 705932a09..26ccfe568 100644 --- a/utils/conf2ael.c +++ b/utils/conf2ael.c @@ -92,7 +92,7 @@ void ast_unregister_file_version(const char *file) int ast_add_profile(const char *x, uint64_t scale) { return 0;} #endif /* Our own version of ast_log, since the expr parser uses it. -- stolen from utils/check_expr.c */ -void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__ ((format (printf,5,6))); +void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) __attribute__((format(printf,5,6))); void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) { diff --git a/utils/extconf.c b/utils/extconf.c index a2e82a440..4a5c6c3e0 100644 --- a/utils/extconf.c +++ b/utils/extconf.c @@ -89,10 +89,10 @@ struct ast_channel void ast_backtrace(void); void ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...) - __attribute__ ((format (printf, 5, 6))); + __attribute__((format(printf, 5, 6))); /* IN CONFLICT: void ast_verbose(const char *fmt, ...) - __attribute__ ((format (printf, 1, 2))); */ + __attribute__((format(printf, 1, 2))); */ int ast_register_verbose(void (*verboser)(const char *string)); int ast_unregister_verbose(void (*verboser)(const char *string)); @@ -666,11 +666,11 @@ static inline int ast_cond_timedwait(ast_cond_t *cond, ast_mutex_t *t, const str constructors/destructors to create/destroy mutexes. */ #define __AST_MUTEX_DEFINE(scope, mutex) \ scope ast_mutex_t mutex = AST_MUTEX_INIT_VALUE; \ -static void __attribute__ ((constructor)) init_##mutex(void) \ +static void __attribute__((constructor)) init_##mutex(void) \ { \ ast_mutex_init(&mutex); \ } \ -static void __attribute__ ((destructor)) fini_##mutex(void) \ +static void __attribute__((destructor)) fini_##mutex(void) \ { \ ast_mutex_destroy(&mutex); \ } @@ -754,11 +754,11 @@ static inline int ast_rwlock_trywrlock(ast_rwlock_t *prwlock) #ifndef HAVE_PTHREAD_RWLOCK_INITIALIZER #define __AST_RWLOCK_DEFINE(scope, rwlock) \ scope ast_rwlock_t rwlock; \ -static void __attribute__ ((constructor)) init_##rwlock(void) \ +static void __attribute__((constructor)) init_##rwlock(void) \ { \ ast_rwlock_init(&rwlock); \ } \ -static void __attribute__ ((destructor)) fini_##rwlock(void) \ +static void __attribute__((destructor)) fini_##rwlock(void) \ { \ ast_rwlock_destroy(&rwlock); \ } @@ -1074,7 +1074,7 @@ char * attribute_malloc _ast_strndup(const char *str, size_t len, const char *fi _ast_asprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, __VA_ARGS__) AST_INLINE_API( -__attribute__((format (printf, 5, 6))) +__attribute__((format(printf, 5, 6))) int _ast_asprintf(char **ret, const char *file, int lineno, const char *func, const char *fmt, ...), { int res; @@ -1101,7 +1101,7 @@ int _ast_asprintf(char **ret, const char *file, int lineno, const char *func, co _ast_vasprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, (fmt), (ap)) AST_INLINE_API( -__attribute__((format (printf, 5, 0))) +__attribute__((format(printf, 5, 0))) int _ast_vasprintf(char **ret, const char *file, int lineno, const char *func, const char *fmt, va_list ap), { int res; @@ -2014,11 +2014,11 @@ struct name { \ struct type *last; \ ast_mutex_t lock; \ } name; \ -static void __attribute__ ((constructor)) init_##name(void) \ +static void __attribute__((constructor)) init_##name(void) \ { \ AST_LIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) fini_##name(void) \ +static void __attribute__((destructor)) fini_##name(void) \ { \ AST_LIST_HEAD_DESTROY(&name); \ } \ @@ -2056,11 +2056,11 @@ struct name { \ struct type *last; \ ast_rwlock_t lock; \ } name; \ -static void __attribute__ ((constructor)) init_##name(void) \ +static void __attribute__((constructor)) init_##name(void) \ { \ AST_RWLIST_HEAD_INIT(&name); \ } \ -static void __attribute__ ((destructor)) fini_##name(void) \ +static void __attribute__((destructor)) fini_##name(void) \ { \ AST_RWLIST_HEAD_DESTROY(&name); \ } \ @@ -2671,7 +2671,7 @@ static void ast_log(int level, const char *file, int line, const char *function, va_end(vars); } -void __attribute__((format (printf, 1, 2))) ast_verbose(const char *fmt, ...) +void __attribute__((format(printf, 1, 2))) ast_verbose(const char *fmt, ...) { va_list vars; va_start(vars,fmt); diff --git a/utils/frame.c b/utils/frame.c index 9f79230b0..abc3a3000 100644 --- a/utils/frame.c +++ b/utils/frame.c @@ -968,7 +968,7 @@ int workloop( FILE *theinfile, FILE *theoutfile, return TRUE; /* Input file done with, no errors. */ } -int __attribute__((format (printf,1,2))) chat( const char *format, ...) +int __attribute__((format(printf,1,2))) chat( const char *format, ...) { va_list ap; int result = 0; @@ -982,7 +982,7 @@ int __attribute__((format (printf,1,2))) chat( const char *format, ...) return result; } -int __attribute__((format (printf,1,2))) inform( const char *format, ...) +int __attribute__((format(printf,1,2))) inform( const char *format, ...) { va_list ap; int result = 0; @@ -996,7 +996,7 @@ int __attribute__((format (printf,1,2))) inform( const char *format, ...) return result; } -int __attribute__((format (printf,1,2))) error( const char *format, ...) +int __attribute__((format(printf,1,2))) error( const char *format, ...) { va_list ap; int result; @@ -1007,7 +1007,7 @@ int __attribute__((format (printf,1,2))) error( const char *format, ...) return result; } -void __attribute__((format (printf,1,2))) fatalerror( const char *format, ...) +void __attribute__((format(printf,1,2))) fatalerror( const char *format, ...) { va_list ap; @@ -1023,7 +1023,7 @@ void fatalperror( const char *string) myexit( 1); } -int __attribute__((format (printf,1,2))) say( const char *format, ...) +int __attribute__((format(printf,1,2))) say( const char *format, ...) { va_list ap; int result;