1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

coverity cleanups for recent command defs commits

This commit is contained in:
David Teigland 2017-02-13 16:11:04 -06:00
parent 5ab051df7a
commit 5a87d8667d
2 changed files with 41 additions and 23 deletions

View File

@ -348,9 +348,11 @@ static int val_str_to_num(char *str)
/* convert "--option" to foo_ARG enum */
#define MAX_LONG_OPT_NAME_LEN 32
static int opt_str_to_num(char *str)
{
char long_name[32];
char long_name[MAX_LONG_OPT_NAME_LEN];
char *p;
int i;
@ -361,9 +363,10 @@ static int opt_str_to_num(char *str)
* short option.
*/
if (strstr(str, "_long")) {
strcpy(long_name, str);
p = strstr(long_name, "_long");
*p = '\0';
memset(long_name, 0, sizeof(long_name));
strncpy(long_name, str, MAX_LONG_OPT_NAME_LEN-1);
if ((p = strstr(long_name, "_long")))
*p = '\0';
for (i = 0; i < ARG_COUNT; i++) {
if (!opt_names[i].long_opt)
@ -451,16 +454,19 @@ static int lv_to_enum(char *name)
* lvt_bits |= lvt_enum_to_bit(lvt_enum)
*/
#define LVTYPE_LEN 64
static uint64_t lv_to_bits(char *name)
{
char buf[64];
char buf[LVTYPE_LEN];
char *argv[MAX_LINE_ARGC];
uint64_t lvt_bits = 0;
int lvt_enum;
int argc;
int i;
strcpy(buf, name);
memset(buf, 0, sizeof(buf));
strncpy(buf, name, LVTYPE_LEN-1);
split_line(buf, &argc, argv, '_');
@ -737,6 +743,10 @@ static void append_oo_definition_line(const char *new_line)
/* +2 = 1 space between old and new + 1 terminating \0 */
len = strlen(old_line) + strlen(new_line) + 2;
line = malloc(len);
if (!line) {
log_error("Parsing command defs: no memory");
exit(EXIT_FAILURE);
}
memset(line, 0, len);
strcat(line, old_line);
@ -749,14 +759,17 @@ static void append_oo_definition_line(const char *new_line)
/* Find a saved OO_FOO definition. */
#define OO_NAME_LEN 64
static char *get_oo_line(const char *str)
{
char *name;
char *end;
char str2[64];
char str2[OO_NAME_LEN];
int i;
strcpy(str2, str);
memset(str2, 0, sizeof(str2));
strncpy(str2, str, OO_NAME_LEN-1);
if ((end = strstr(str2, ":")))
*end = '\0';
if ((end = strstr(str2, ",")))
@ -917,7 +930,7 @@ static void update_prev_pos_arg(struct command *cmd, char *str, int required)
static void add_optional_opt_line(struct command *cmd, int argc, char *argv[])
{
int takes_arg;
int takes_arg = 0;
int i;
for (i = 0; i < argc; i++) {
@ -941,7 +954,7 @@ static void add_optional_opt_line(struct command *cmd, int argc, char *argv[])
static void add_ignore_opt_line(struct command *cmd, int argc, char *argv[])
{
int takes_arg;
int takes_arg = 0;
int i;
for (i = 0; i < argc; i++) {
@ -977,7 +990,7 @@ static void add_optional_pos_line(struct command *cmd, int argc, char *argv[])
static void add_required_opt_line(struct command *cmd, int argc, char *argv[])
{
int takes_arg;
int takes_arg = 0;
int i;
for (i = 0; i < argc; i++) {
@ -1345,10 +1358,12 @@ int define_commands(void)
if (cmd->desc) {
int newlen = strlen(cmd->desc) + strlen(desc) + 2;
char *newdesc = malloc(newlen);
memset(newdesc, 0, newlen);
snprintf(newdesc, newlen, "%s %s", cmd->desc, desc);
cmd->desc = newdesc;
free(desc);
if (newdesc) {
memset(newdesc, 0, newlen);
snprintf(newdesc, newlen, "%s %s", cmd->desc, desc);
cmd->desc = newdesc;
free(desc);
}
} else
cmd->desc = desc;
continue;
@ -1632,7 +1647,7 @@ void print_usage(struct command *cmd)
void print_usage_common(struct command_name *cname, struct command *cmd)
{
int oo, opt_enum, first;
int oo, opt_enum, first = 1;
printf(" Common options:");
@ -1644,8 +1659,6 @@ void print_usage_common(struct command_name *cname, struct command *cmd)
if (cname->variants < 2)
goto all;
first = 1;
for (opt_enum = 0; opt_enum < ARG_COUNT; opt_enum++) {
if (!cname->common_options[opt_enum])
continue;
@ -2527,9 +2540,11 @@ static char *upper_command_name(char *str)
return str_upper;
}
#define MAX_MAN_DESC (1024 * 1024)
static void include_description_file(char *name, char *des_file)
{
char buf[1024 * 1024];
char buf[MAX_MAN_DESC];
int fd;
memset(buf, 0, sizeof(buf));
@ -2539,7 +2554,9 @@ static void include_description_file(char *name, char *des_file)
if (fd < 0)
return;
read(fd, buf, sizeof(buf) - 1);
read(fd, buf, sizeof(buf));
buf[MAX_MAN_DESC-1] = '\0';
printf(".SH DESCRIPTION\n");
printf("%s\n", buf);
@ -2586,7 +2603,7 @@ void print_man(char *name, char *des_file, int include_primary, int include_seco
if (!(cmd->cmd_flags & CMD_FLAG_SECONDARY_SYNTAX) && !include_primary)
continue;
if (name && strcmp(name, cmd->name))
if (strcmp(name, cmd->name))
continue;
if (!prev_cmd || strcmp(prev_cmd->name, cmd->name)) {

View File

@ -1155,7 +1155,8 @@ void lvm_register_commands(void)
/* old style */
if (!commands[i].functions) {
struct command_name *cname = find_command_name(commands[i].name);
commands[i].fn = cname->fn;
if (cname)
commands[i].fn = cname->fn;
}
}
@ -1365,7 +1366,7 @@ static struct command *_find_command(struct cmd_context *cmd, const char *path,
char buf[64];
int match_required, match_ro, match_rp, match_type, match_unused, mismatch_required;
int best_i = 0, best_required = 0, best_type = 0, best_unused = 0;
int close_i = 0, close_ro = 0, close_type;
int close_i = 0, close_ro = 0, close_type = 0;
int temp_unused_options[MAX_UNUSED_COUNT];
int temp_unused_count;
int best_unused_options[MAX_UNUSED_COUNT] = { 0 };