Sometimes we use partition.conf files with so many entries that 
the 1K buffer currently used by osm_prtn_config_parse_file() is 
too small. Use getline() to avoid that.

Signed-off-by: <akep...@sgi.com>
---
 opensm/opensm/osm_prtn_config.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

---

diff --git a/opensm/opensm/osm_prtn_config.c b/opensm/opensm/osm_prtn_config.c
index 0d02597..34676ef 100644
--- a/opensm/opensm/osm_prtn_config.c
+++ b/opensm/opensm/osm_prtn_config.c
@@ -400,7 +400,9 @@ skip_header:
 int osm_prtn_config_parse_file(osm_log_t * p_log, osm_subn_t * p_subn,
                               const char *file_name)
 {
-       char line[1024];
+       char *line = NULL;
+       ssize_t llen;
+       size_t n;
        struct part_conf *conf = NULL;
        FILE *file;
        int lineno;
@@ -415,7 +417,7 @@ int osm_prtn_config_parse_file(osm_log_t * p_log, 
osm_subn_t * p_subn,
 
        lineno = 0;
 
-       while (fgets(line, sizeof(line) - 1, file) != NULL) {
+       while ((llen = getline(&line, &n, file)) != -1) {
                char *q, *p = line;
 
                lineno++;
@@ -463,6 +465,8 @@ int osm_prtn_config_parse_file(osm_log_t * p_log, 
osm_subn_t * p_subn,
                } while (q);
        }
 
+       free(line);
+
        fclose(file);
 
        return 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to