glusterd: fix gcc7 warnings
[sh]$ gcc --version gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) Warnings were of the type below: xlators/mgmt/glusterd/src/glusterd-store.c:3285:33: warning: ‘/options’ directive output may be truncated writing 8 bytes into a region of size between 1 and 4096 [-Wformat-truncation=] snprintf (path, len, "%s/options", conf->workdir); ^~~~~~~~ xlators/mgmt/glusterd/src/glusterd-store.c:1280:39: warning: ‘/snaps/’ directive output may be truncated writing 7 bytes into a region of size between 1 and 4096 [-Wformat-truncation=] snprintf (snap_fpath, len, "%s/snaps/%s/%s", priv->workdir, ^~~~~~~ * Also changed some places where there was issues with key size * Made sure all the 'char buf[SOMESIZE] = {0,};' are changed to 'char buf[SOMESIZE] = "";` - In the files I changed * Also edited coding standard to reflect that. updates: bz#1193929 Change-Id: I04c652624ac63199cea2077e46b3a5def37c3689 Signed-off-by: Amar Tumballi <amarts@redhat.com>
This commit is contained in:
parent
d339f87a6f
commit
1f3bfe7b5d
@ -156,6 +156,28 @@ instead.
|
||||
gf_boolean_t port_inuse[65536]; /* 256KB, this actually happened */
|
||||
```
|
||||
|
||||
NOTE: Ideal is to limit the stack array to less than 256 bytes.
|
||||
|
||||
|
||||
Character array initializing
|
||||
----------------------------
|
||||
|
||||
It is recommended to keep the character array initializing to empty string.
|
||||
|
||||
*Good:*
|
||||
```
|
||||
char msg[1024] = "";
|
||||
```
|
||||
|
||||
Not so much recommended, even though it means the same.
|
||||
|
||||
```
|
||||
char msg[1024] = {0,};
|
||||
```
|
||||
|
||||
We recommend above to structure initialization.
|
||||
|
||||
|
||||
|
||||
Validate all arguments to a function
|
||||
------------------------------------
|
||||
|
@ -416,7 +416,7 @@ __glusterd_handle_add_brick (rpcsvc_request_t *req)
|
||||
char *volname = NULL;
|
||||
int brick_count = 0;
|
||||
void *cli_rsp = NULL;
|
||||
char err_str[2048] = {0,};
|
||||
char err_str[2048] = "";
|
||||
gf_cli_rsp rsp = {0,};
|
||||
glusterd_volinfo_t *volinfo = NULL;
|
||||
xlator_t *this = NULL;
|
||||
@ -777,8 +777,8 @@ subvol_matcher_destroy (int *subvols)
|
||||
int
|
||||
glusterd_set_detach_bricks(dict_t *dict, glusterd_volinfo_t *volinfo)
|
||||
{
|
||||
char key[256] = {0,};
|
||||
char value[256] = {0,};
|
||||
char key[64] = "";
|
||||
char value[2048] = ""; /* hostname + path */
|
||||
int brick_num = 0;
|
||||
int hot_brick_num = 0;
|
||||
glusterd_brickinfo_t *brickinfo;
|
||||
@ -885,16 +885,16 @@ __glusterd_handle_remove_brick (rpcsvc_request_t *req)
|
||||
dict_t *dict = NULL;
|
||||
int32_t count = 0;
|
||||
char *brick = NULL;
|
||||
char key[256] = {0,};
|
||||
char key[64] = "";
|
||||
int i = 1;
|
||||
glusterd_volinfo_t *volinfo = NULL;
|
||||
glusterd_brickinfo_t *brickinfo = NULL;
|
||||
glusterd_brickinfo_t **brickinfo_list = NULL;
|
||||
int *subvols = NULL;
|
||||
char err_str[2048] = {0};
|
||||
char err_str[2048] = "";
|
||||
gf_cli_rsp rsp = {0,};
|
||||
void *cli_rsp = NULL;
|
||||
char vol_type[256] = {0,};
|
||||
char vol_type[256] = "";
|
||||
int32_t replica_count = 0;
|
||||
char *volname = 0;
|
||||
xlator_t *this = NULL;
|
||||
@ -1319,10 +1319,9 @@ glusterd_op_perform_add_bricks (glusterd_volinfo_t *volinfo, int32_t count,
|
||||
glusterd_brickinfo_t *brickinfo = NULL;
|
||||
glusterd_gsync_status_temp_t param = {0, };
|
||||
gf_boolean_t restart_needed = 0;
|
||||
char msg[1024] __attribute__((unused)) = {0, };
|
||||
int caps = 0;
|
||||
int brickid = 0;
|
||||
char key[PATH_MAX] = "";
|
||||
char key[64] = "";
|
||||
char *brick_mount_dir = NULL;
|
||||
xlator_t *this = NULL;
|
||||
glusterd_conf_t *conf = NULL;
|
||||
@ -1521,6 +1520,7 @@ glusterd_op_perform_add_bricks (glusterd_volinfo_t *volinfo, int32_t count,
|
||||
if (ret)
|
||||
goto out;
|
||||
#ifdef HAVE_BD_XLATOR
|
||||
char msg[1024] = "";
|
||||
/* Check for VG/thin pool if its BD volume */
|
||||
if (brickinfo->vg[0]) {
|
||||
ret = glusterd_is_valid_vg (brickinfo, 0, msg);
|
||||
@ -1674,8 +1674,8 @@ glusterd_op_stage_add_brick (dict_t *dict, char **op_errstr, dict_t *rsp_dict)
|
||||
glusterd_brickinfo_t *brickinfo = NULL;
|
||||
glusterd_volinfo_t *volinfo = NULL;
|
||||
xlator_t *this = NULL;
|
||||
char msg[2048] = {0,};
|
||||
char key[PATH_MAX] = "";
|
||||
char msg[4096] = "";
|
||||
char key[64] = "";
|
||||
gf_boolean_t brick_alloc = _gf_false;
|
||||
char *all_bricks = NULL;
|
||||
char *str_ret = NULL;
|
||||
@ -1997,8 +1997,8 @@ glusterd_remove_brick_validate_bricks (gf1_op_commands cmd, int32_t brick_count,
|
||||
gf_cli_defrag_type cmd_defrag)
|
||||
{
|
||||
char *brick = NULL;
|
||||
char msg[2048] = {0,};
|
||||
char key[256] = {0,};
|
||||
char msg[2048] = "";
|
||||
char key[64] = "";
|
||||
glusterd_brickinfo_t *brickinfo = NULL;
|
||||
glusterd_peerinfo_t *peerinfo = NULL;
|
||||
int i = 0;
|
||||
@ -2140,7 +2140,7 @@ glusterd_op_stage_remove_brick (dict_t *dict, char **op_errstr)
|
||||
glusterd_volinfo_t *volinfo = NULL;
|
||||
char *errstr = NULL;
|
||||
int32_t brick_count = 0;
|
||||
char msg[2048] = {0,};
|
||||
char msg[2048] = "";
|
||||
int32_t flag = 0;
|
||||
gf1_op_commands cmd = GF_OP_CMD_NONE;
|
||||
char *task_id_str = NULL;
|
||||
@ -2719,9 +2719,9 @@ glusterd_op_remove_brick (dict_t *dict, char **op_errstr)
|
||||
char *brick = NULL;
|
||||
int32_t count = 0;
|
||||
int32_t i = 1;
|
||||
char key[256] = {0,};
|
||||
char key[64] = "";
|
||||
int32_t flag = 0;
|
||||
char err_str[4096] = {0,};
|
||||
char err_str[4096] = "";
|
||||
int need_rebalance = 0;
|
||||
int force = 0;
|
||||
gf1_op_commands cmd = 0;
|
||||
@ -3243,7 +3243,7 @@ __glusterd_handle_add_tier_brick (rpcsvc_request_t *req)
|
||||
char *volname = NULL;
|
||||
int brick_count = 0;
|
||||
void *cli_rsp = NULL;
|
||||
char err_str[2048] = {0,};
|
||||
char err_str[2048] = "";
|
||||
gf_cli_rsp rsp = {0,};
|
||||
glusterd_volinfo_t *volinfo = NULL;
|
||||
xlator_t *this = NULL;
|
||||
|
@ -141,6 +141,16 @@ struct glusterd_volgen {
|
||||
dict_t *dict;
|
||||
};
|
||||
|
||||
/* Keeping all the paths required in glusterd would
|
||||
cause many buffer overflow errors, as we append
|
||||
more defined paths to the brick path, workdir etc etc.
|
||||
It is better to keep limit on this as lesser value,
|
||||
so we get an option to continue with all functionalities.
|
||||
For example, snapname max would be appended on brick-path and
|
||||
would be stored on workdir... all of these being PATH_MAX, is
|
||||
not an ideal situation for success. */
|
||||
#define VALID_GLUSTERD_PATHMAX (PATH_MAX - (256 + 64))
|
||||
|
||||
typedef struct {
|
||||
struct _volfile_ctx *volfile;
|
||||
pthread_mutex_t mutex;
|
||||
@ -148,8 +158,8 @@ typedef struct {
|
||||
gf_boolean_t verify_volfile_checksum;
|
||||
gf_boolean_t trace;
|
||||
uuid_t uuid;
|
||||
char workdir[PATH_MAX];
|
||||
char rundir[PATH_MAX];
|
||||
char workdir[VALID_GLUSTERD_PATHMAX];
|
||||
char rundir[VALID_GLUSTERD_PATHMAX];
|
||||
rpcsvc_t *rpc;
|
||||
glusterd_svc_t shd_svc;
|
||||
glusterd_svc_t nfs_svc;
|
||||
@ -212,10 +222,10 @@ typedef enum gf_brick_status {
|
||||
|
||||
struct glusterd_brickinfo {
|
||||
char hostname[1024];
|
||||
char path[PATH_MAX];
|
||||
char real_path[PATH_MAX];
|
||||
char device_path[PATH_MAX];
|
||||
char mount_dir[PATH_MAX];
|
||||
char path[VALID_GLUSTERD_PATHMAX];
|
||||
char real_path[VALID_GLUSTERD_PATHMAX];
|
||||
char device_path[VALID_GLUSTERD_PATHMAX];
|
||||
char mount_dir[VALID_GLUSTERD_PATHMAX];
|
||||
char brick_id[1024];/*Client xlator name, AFR changelog name*/
|
||||
char fstype [NAME_MAX]; /* Brick file-system type */
|
||||
char mnt_opts [1024]; /* Brick mount options */
|
||||
|
Loading…
x
Reference in New Issue
Block a user