Spotted by Coverity Scan

Signed-off-by: Fabio M. Di Nitto <fdini...@redhat.com>
---
:100644 100644 477b8de... b99a672... M  cman/qdisk/scandisk.c
 cman/qdisk/scandisk.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/cman/qdisk/scandisk.c b/cman/qdisk/scandisk.c
index 477b8de..b99a672 100644
--- a/cman/qdisk/scandisk.c
+++ b/cman/qdisk/scandisk.c
@@ -252,11 +252,12 @@ static int scanprocpart(struct devlisthead *devlisthead)
        unsigned long long blkcnt;
        char device[128];
        struct devnode *startnode;
+
        fp = fopen("/proc/partitions", "r");
        if (!fp)
                return 0;
-       while (fgets(line, sizeof(line), fp)
-              != NULL) {
+
+       while (fgets(line, sizeof(line) - 1, fp) != NULL) {
 
                if (strlen(line) > 128 + (22))
                        continue;
@@ -270,16 +271,19 @@ static int scanprocpart(struct devlisthead *devlisthead)
                 */
                if (!strlen(device))
                        continue;
+
                startnode =
                    find_dev_by_majmin(devlisthead->devnode, major, minor);
                if (!startnode) {
                        startnode = alloc_list_obj(devlisthead, major, minor);
-                       if (!startnode)
+                       if (!startnode) {
+                               fclose(fp);
                                return -2;
+                       }
                }
 
                startnode->procpart = 1;
-               strcpy(startnode->procname, device);
+               strncpy(startnode->procname, device, 
sizeof(startnode->procname) - 1);
        }
 
        fclose(fp);
-- 
1.7.4.4

Reply via email to