summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch')
-rw-r--r--external/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch122
1 files changed, 122 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/external/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
new file mode 100644
index 00000000..c374fc94
--- /dev/null
+++ b/external/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.