[gdb] Improve early exits for env var in debuginfod-support.c
authorTom de Vries <tdevries@suse.de>
Wed, 18 Nov 2020 21:15:50 +0000 (22:15 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 18 Nov 2020 21:15:50 +0000 (22:15 +0100)
There's an early exit in libdebuginfod's debuginfod_query_server, which checks
both for:
- getenv (DEBUGINFOD_URLS_ENV_VAR) == NULL, and
- (getenv (DEBUGINFOD_URLS_ENV_VAR))[0] == '\0'.

In debuginfod_source_query and debuginfod_debuginfo_query (which both
end up calling debuginfod_query_server) there are also early exits checking
the same env var, but those just check for NULL.

Make the early exit tests in debuginfod-support.c match those in
libdebuginfod.

gdb/ChangeLog:

2020-11-18  Tom de Vries  <tdevries@suse.de>

* debuginfod-support.c (debuginfod_source_query)
(debuginfod_debuginfo_query): Also do early exit if
"(getenv (DEBUGINFOD_URLS_ENV_VAR))[0] == '\0'".

gdb/ChangeLog
gdb/debuginfod-support.c

index 49b2511cae23b79cc9e8c9b978d0d3b354cfd56f..18c8c0dc08efcd16e6e33a333ab9889ad5c1e1ff 100644 (file)
@@ -1,3 +1,9 @@
+2020-11-18  Tom de Vries  <tdevries@suse.de>
+
+       * debuginfod-support.c (debuginfod_source_query)
+       (debuginfod_debuginfo_query): Also do early exit if
+       "(getenv (DEBUGINFOD_URLS_ENV_VAR))[0] == '\0'".
+
 2020-11-18  Tom de Vries  <tdevries@suse.de>
 
        * gdbtypes.c (update_static_array_size): Fix -Werror=bool-compare
index ae0f4c6c437d201f4fe6b26b9c727675a8a9f48d..a7c76ab6134c22129945b4d88b076b1896ea4700 100644 (file)
@@ -111,7 +111,8 @@ debuginfod_source_query (const unsigned char *build_id,
                         const char *srcpath,
                         gdb::unique_xmalloc_ptr<char> *destname)
 {
-  if (getenv (DEBUGINFOD_URLS_ENV_VAR) == NULL)
+  const char *urls_env_var = getenv (DEBUGINFOD_URLS_ENV_VAR);
+  if (urls_env_var == NULL || urls_env_var[0] == '\0')
     return scoped_fd (-ENOSYS);
 
   debuginfod_client_up c = debuginfod_init ();
@@ -147,7 +148,8 @@ debuginfod_debuginfo_query (const unsigned char *build_id,
                            const char *filename,
                            gdb::unique_xmalloc_ptr<char> *destname)
 {
-  if (getenv (DEBUGINFOD_URLS_ENV_VAR) == NULL)
+  const char *urls_env_var = getenv (DEBUGINFOD_URLS_ENV_VAR);
+  if (urls_env_var == NULL || urls_env_var[0] == '\0')
     return scoped_fd (-ENOSYS);
 
   debuginfod_client_up c = debuginfod_init ();