Whamcloud - gitweb
LU-2074 build: fix 'copy into fixed size buffer' errors
[fs/lustre-release.git] / lnet / selftest / console.c
index d58cc9c..aac83bd 100644 (file)
@@ -211,8 +211,14 @@ lstcon_group_alloc(char *name, lstcon_group_t **grpp)
                                 grp_ndl_hash[LST_NODE_HASHSIZE]));
 
         grp->grp_ref = 1;
-        if (name != NULL)
-                strcpy(grp->grp_name, name);
+       if (name != NULL) {
+               if (strlen(name) > sizeof(grp->grp_name)-1) {
+                       LIBCFS_FREE(grp, offsetof(lstcon_group_t,
+                                         grp_ndl_hash[LST_NODE_HASHSIZE]));
+                       return -E2BIG;
+               }
+               strncpy(grp->grp_name, name, sizeof(grp->grp_name));
+       }
 
         CFS_INIT_LIST_HEAD(&grp->grp_link);
         CFS_INIT_LIST_HEAD(&grp->grp_ndl_list);
@@ -891,7 +897,13 @@ lstcon_batch_add(char *name)
                 return -ENOMEM;
         }
 
-        strcpy(bat->bat_name, name);
+       if (strlen(name) > sizeof(bat->bat_name)-1) {
+               LIBCFS_FREE(bat->bat_srv_hash, LST_NODE_HASHSIZE);
+               LIBCFS_FREE(bat->bat_cli_hash, LST_NODE_HASHSIZE);
+               LIBCFS_FREE(bat, sizeof(lstcon_batch_t));
+               return -E2BIG;
+       }
+       strncpy(bat->bat_name, name, sizeof(bat->bat_name));
         bat->bat_hdr.tsb_index = 0;
         bat->bat_hdr.tsb_id.bat_id = ++console_session.ses_id_cookie;
 
@@ -1762,7 +1774,11 @@ lstcon_session_new(char *name, int key, unsigned feats,
        console_session.ses_feats_updated = 0;
        console_session.ses_timeout = (timeout <= 0) ?
                                      LST_CONSOLE_TIMEOUT : timeout;
-       strcpy(console_session.ses_name, name);
+
+       if (strlen(name) > sizeof(console_session.ses_name)-1)
+               return -E2BIG;
+       strncpy(console_session.ses_name, name,
+               sizeof(console_session.ses_name));
 
         rc = lstcon_batch_add(LST_DEFAULT_BATCH);
         if (rc != 0)