]>
Commit | Line | Data |
---|---|---|
a3809792 JR |
1 | --- rpm-4.5/lib/rpmfc.c.org 2012-02-29 16:32:05.655058968 +0100 |
2 | +++ rpm-4.5/lib/rpmfc.c 2012-02-29 16:36:22.430972834 +0100 | |
3 | @@ -1114,9 +1114,31 @@ | |
4 | /* XXX skip all files in /dev/ which are (or should be) %dev dummies. */ | |
5 | else if (slen >= fc->brlen+sizeof("/dev/") && !strncmp(s+fc->brlen, "/dev/", sizeof("/dev/")-1)) | |
6 | ftype = ""; | |
7 | - else | |
8 | + else { | |
9 | + char *old_ctype = setlocale(LC_CTYPE, NULL); | |
10 | + char *old_collate = setlocale(LC_COLLATE, NULL); | |
11 | + | |
12 | + if (old_ctype) { | |
13 | + old_ctype = xstrdup(old_ctype); | |
14 | + setlocale(LC_CTYPE, "C"); | |
15 | + } | |
16 | + if (old_collate) { | |
17 | + old_collate = xstrdup(old_collate); | |
18 | + setlocale(LC_COLLATE, "C"); | |
19 | + } | |
20 | + | |
21 | ftype = magic_file(ms, s); | |
22 | ||
23 | + if (old_ctype) { | |
24 | + setlocale(LC_CTYPE, old_ctype); | |
25 | + _free(old_ctype); | |
26 | + } | |
27 | + if (old_collate) { | |
28 | + setlocale(LC_COLLATE, old_collate); | |
29 | + _free(old_collate); | |
30 | + } | |
31 | + } | |
32 | + | |
33 | if (ftype == NULL) { | |
34 | xx = RPMERR_EXEC; | |
35 | rpmError(xx, _("magic_file(ms, \"%s\") failed: mode %06o %s\n"), |