From 875791dcde5a1500cb8221b712004a1f35020424 Mon Sep 17 00:00:00 2001
From: "Lucas A. M. Magalhaes" <lucas.magalhaes@ess.eu>
Date: Wed, 10 May 2023 11:19:23 +0200
Subject: [PATCH] Fix format overflow errors from GCC13 in require.c
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In function ‘compareVersions’,
    inlined from ‘require_priv’ at .././src/require.c:1025:29:
.././src/require.c:640:9: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  640 |   debug("require: compareVersions(found=%s, request=%s)\n", found, request);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.././src/require.c:601:28: note: in definition of macro ‘debug’
  601 |   if (requireDebug) printf(__VA_ARGS__)
      |                            ^~~~~~~~~~~
.././src/require.c: In function ‘require_priv’:
.././src/require.c:640:53: note: format string is defined here
  640 |   debug("require: compareVersions(found=%s, request=%s)\n", found, request);
      |                                                     ^~
In function ‘compareVersions’,
    inlined from ‘require_priv’ at .././src/require.c:1025:29:
.././src/require.c:640:9: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  640 |   debug("require: compareVersions(found=%s, request=%s)\n", found, request);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.././src/require.c:601:28: note: in definition of macro ‘debug’
  601 |   if (requireDebug) printf(__VA_ARGS__)
      |                            ^~~~~~~~~~~
.././src/require.c: In function ‘require_priv’:
.././src/require.c:640:53: note: format string is defined here
  640 |   debug("require: compareVersions(found=%s, request=%s)\n", found, request);
      |                                                     ^~
.././src/require.c:1031:50: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
 1031 |                 printf("require: %s %s may match %s\n", module, currentFilename,
      |                                                  ^~
---
 require-ess/src/require.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/require-ess/src/require.c b/require-ess/src/require.c
index 2803e929..3c95a76e 100644
--- a/require-ess/src/require.c
+++ b/require-ess/src/require.c
@@ -637,7 +637,8 @@ static int compareVersions(const char *found, const char *request,
   semver_t *sv_found, *sv_request;
   int match;
 
-  debug("require: compareVersions(found=%s, request=%s)\n", found, request);
+  debug("require: compareVersions(found=%s, request=%s)\n", found,
+        request ? request : "");
 
   if (request == NULL || request[0] == 0) {
     debug("require: compareVersions: MATCH empty version requested\n");
@@ -1020,7 +1021,7 @@ static int require_priv(
           /* Look for highest matching version. */
           if (requireDebug)
             printf("require: checking version %s against required %s\n",
-                   currentFilename, version);
+                   currentFilename, version ? version : "");
 
           switch ((status = compareVersions(currentFilename, version, FALSE))) {
             case MATCH: /* all given numbers match. */
@@ -1029,7 +1030,7 @@ static int require_priv(
 
               if (requireDebug)
                 printf("require: %s %s may match %s\n", module, currentFilename,
-                       version);
+                       version ? version : "");
 
               /* Check if it has our EPICS version and architecture. */
               /* Even if it has no library, at least it has a dep file in the
-- 
GitLab