]> git.saurik.com Git - apple/libc.git/blobdiff - locale/FreeBSD/collate.c
Libc-1244.1.7.tar.gz
[apple/libc.git] / locale / FreeBSD / collate.c
index d468783ae4c1d7190e004cd5b60f411504cab4e3..028c182f1910d1e477cae7cda06b2c20ee35db4b 100644 (file)
@@ -72,6 +72,7 @@ int __collate_load_error = 1;
 __private_extern__ int
 __collate_load_tables(const char *encoding, locale_t loc)
 {
+       int fd;
        FILE *fp;
        int i, saverr, chains, z;
        char strbuf[STR_LEN], buf[PATH_MAX];
@@ -111,7 +112,12 @@ __collate_load_tables(const char *encoding, locale_t loc)
        /* Range checking not needed, encoding has fixed size */
        (void)strcpy(buf, encoding);
        (void)strcat(buf, "/LC_COLLATE");
-       if ((fp = fdopen(__open_path_locale(buf), "r")) == NULL) {
+       fd = __open_path_locale(buf);
+       if (fd == -1) {
+               return (_LDP_ERROR);
+       }
+       if ((fp = fdopen(fd, "r")) == NULL) {
+               close(fd);
                return (_LDP_ERROR);
        }