aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/glibc-version.patch
blob: 92c1b252ad5c52ab9afdd0f419b305fed6a9db6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Description: Fix checking for GLIBC version
 Use ldconfig -V instead of trying to call libc.so.6 directly, and update the
 string mangling in the process.
Author: Mathieu Trudel-Lapierre <cyphermox@ubuntu.com>
Bug-Ubuntu: https://pad.lv/1473142
Last-Update: 2017-06-19
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/modules/computer/os.c
+++ b/modules/computer/os.c
@@ -27,8 +27,7 @@ get_libc_version(void)
     FILE *libc;
     gchar buf[256], *tmp, *p;
     char *libc_paths[] = {
-		"/lib/ld-uClibc.so.0", "/lib64/ld-uClibc.so.0",
-		"/lib/libc.so.6", "/lib64/libc.so.6"
+		"ldconfig -V"
 	};
 	int i;
 	
@@ -47,15 +46,13 @@ get_libc_version(void)
     (void)fgets(buf, 256, libc);
     if (pclose(libc)) goto err;
 
-    tmp = strstr(buf, "version ");
-    if (!tmp) goto err;
+    buf[strlen(buf) - 1] = '\0';
 
-    p = strchr(tmp, ',');
-    if (p) *p = '\0';
-    else goto err;
+    tmp = strstr(buf, " ");
+    if (!tmp) goto err;
 
     return g_strdup_printf(_("GNU C Library version %s (%sstable)"),
-                           strchr(tmp, ' ') + 1,
+                           tmp + 1,
                            strstr(buf, " stable ") ? "" : _("un"));
   err:
     return g_strdup(_("Unknown"));