diff options
Diffstat (limited to 'meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch')
-rw-r--r-- | meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch new file mode 100644 index 000000000..c374fc943 --- /dev/null +++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch @@ -0,0 +1,122 @@ +From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 9 Sep 2018 21:49:59 -0700 +Subject: [PATCH] add a formatting attribute check + +Tell Clang that parameter is a printf style format using the +attribute flag + +This helps in avoiding below warnings seen with clang + +unarr.c:106:22: error: format string is not a string literal +[-Werror,-Wformat-nonliteral] +| vfprintf(stderr, msg, args); +| ^~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + cut-n-paste/unarr/common/unarr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/cut-n-paste/unarr/common/unarr.c ++++ b/cut-n-paste/unarr/common/unarr.c +@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive + return ar->get_comment(ar, buffer, count); + } + +-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...) ++void __attribute__((__format__ (__printf__, 4, 5))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...) + { + va_list args; + va_start(args, msg); +--- a/cut-n-paste/synctex/synctex_parser_utils.c ++++ b/cut-n-paste/synctex/synctex_parser_utils.c +@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) { + # include <syslog.h> + #endif + +-int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2))); +-int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0))); +- +-int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) { ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0); ++static int _synctex_log(int level, const char * prompt, const char * reason, ...) { ++ va_list arg; + int result; ++ va_start(arg, reason); + # ifdef SYNCTEX_RECENT_WINDOWS + {/* This code is contributed by William Blum. + As it does not work on some older computers, +@@ -133,10 +133,10 @@ int _synctex_log(int level, const char * + result += vfprintf(where, reason, arg); + result += fprintf(where,"\n"); + # endif ++ va_end(arg); + return result; + } + +-__attribute__((__format__ (__printf__, 1, 0))) + int _synctex_error(const char * reason,...) { + va_list arg; + int result; +@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char + size_t len = strlen(temp); + if(UINT_MAX-len<size) { + _synctex_error("! _synctex_merge_strings: Capacity exceeded."); ++ va_end(arg); + return NULL; + } + size+=len; +@@ -374,6 +375,7 @@ char * _synctex_merge_strings(const char + if(dest != strncpy(dest,temp,size)) { + _synctex_error("! _synctex_merge_strings: Copy problem"); + free(result); ++ va_end(arg); + result = NULL; + return NULL; + } +--- a/cut-n-paste/synctex/synctex_parser.c ++++ b/cut-n-paste/synctex/synctex_parser.c +@@ -8411,6 +8411,7 @@ struct synctex_updater_t { + int length; /* the number of chars appended */ + }; + ++static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3); + static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) { + int result = 0; + if (updater) { +@@ -8447,6 +8448,7 @@ static int vasprintf(char **ret, + /** + * gzvprintf is not available until OSX 10.10 + */ ++static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3); + static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) { + int result = 0; + if (updater) { +--- a/cut-n-paste/synctex/synctex_parser_utils.h ++++ b/cut-n-paste/synctex/synctex_parser_utils.h +@@ -85,7 +85,11 @@ extern "C" { + # else + # define SYNCTEX_ARE_PATH_CHARACTERS_EQUAL(left,right) (toupper(left) != toupper(right)) + # endif +- ++# ifdef __GNUC__ ++# define SYNCTEX_PRINTF_FORMAT(si, ftc) __attribute__ ((format (printf, si, ftc))) ++# else ++# define SYNCTEX_PRINTF_FORMAT(si, ftc) ++# endif + /* This custom malloc functions initializes to 0 the newly allocated memory. + * There is no bzero function on windows. */ + void *_synctex_malloc(size_t size); +@@ -97,8 +101,8 @@ void _synctex_free(void * ptr); + /* This is used to log some informational message to the standard error stream. + * On Windows, the stderr stream is not exposed and another method is used. + * The return value is the number of characters printed. */ +- int _synctex_error(const char * reason,...); +- int _synctex_debug(const char * reason,...); ++ int _synctex_error(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2); ++ int _synctex_debug(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2); + + /* strip the last extension of the given string, this string is modified! + * This function depends on the OS because the path separator may differ. |