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"));
|