]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
scols/table_print: restore old stream after printing to str
authorIgor Gnatenko <i.gnatenko.brain@gmail.com>
Sun, 13 Dec 2015 14:02:05 +0000 (15:02 +0100)
committerIgor Gnatenko <i.gnatenko.brain@gmail.com>
Sun, 13 Dec 2015 14:02:05 +0000 (15:02 +0100)
Reference: https://github.com/karelzak/util-linux/issues/240
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
libsmartcols/src/table_print.c

index caae98c1423f7fd85bd382ab52a3376d0963a116..eca61bc04b8ff716f7d6b45f8b2be614a7097fd9 100644 (file)
@@ -1062,7 +1062,7 @@ done:
 int scols_print_table_to_string(struct libscols_table *tb, char **data)
 {
 #ifdef HAVE_OPEN_MEMSTREAM
-       FILE *stream;
+       FILE *stream, *old_stream;
        size_t sz;
        int rc;
 
@@ -1076,9 +1076,11 @@ int scols_print_table_to_string(struct libscols_table *tb, char **data)
        if (!stream)
                return -ENOMEM;
 
+       old_stream = scols_table_get_stream(tb);
        scols_table_set_stream(tb, stream);
        rc = scols_print_table(tb);
        fclose(stream);
+       scols_table_set_stream(tb, old_stream);
 
        return rc;
 #else