Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix some bugs detected by Coverity.
  • Loading branch information
Marco van Wieringen committed Feb 17, 2015
1 parent cd49f9b commit 23afadf
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 28 deletions.
8 changes: 0 additions & 8 deletions src/cats/sql_update.c
Expand Up @@ -361,14 +361,6 @@ bool db_update_media_record(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
UPDATE_DB(jcr, mdb, mdb->cmd);
}

/* sanity checks for #1066 */
if (mr->VolReadTime < 0) {
mr->VolReadTime = 0;
}
if (mr->VolWriteTime < 0) {
mr->VolWriteTime = 0;
}

Mmsg(mdb->cmd, "UPDATE Media SET VolJobs=%u,"
"VolFiles=%u,VolBlocks=%u,VolBytes=%s,VolMounts=%u,VolErrors=%u,"
"VolWrites=%u,MaxVolBytes=%s,VolStatus='%s',"
Expand Down
4 changes: 2 additions & 2 deletions src/dird/ua_cmds.c
Expand Up @@ -848,14 +848,14 @@ static int setbwlimit_cmd(UAContext *ua, const char *cmd)
memset(Job, 0, sizeof(Job));
i = find_arg_with_value(ua, NT_("limit"));
if (i >= 0) {
limit = atoi(ua->argv[i]) * 1024;
limit = ((int64_t)atoi(ua->argv[i]) * 1024);
}

if (limit < 0) {
if (!get_pint(ua, _("Enter new bandwidth limit kb/s: "))) {
return 1;
}
limit = ua->pint32_val * 1024; /* kb/s */
limit = ((int64_t)ua->pint32_val * 1024); /* kb/s */
}

if (find_arg_keyword(ua, lst) > 0) {
Expand Down
4 changes: 2 additions & 2 deletions src/dird/ua_update.c
Expand Up @@ -843,10 +843,10 @@ static int update_volume(UAContext *ua)
static bool update_stats(UAContext *ua)
{
int i = find_arg_with_value(ua, NT_("days"));
utime_t since=0;
utime_t since = 0;

if (i >= 0) {
since = atoi(ua->argv[i]) * 24*60*60;
since = ((int64_t)atoi(ua->argv[i]) * 24 * 60 * 60);
}

int nb = db_update_stats(ua->jcr, ua->db, since);
Expand Down
1 change: 1 addition & 0 deletions src/filed/status.c
Expand Up @@ -527,6 +527,7 @@ static const char *level_to_str(int level)
switch (level) {
case L_BASE:
str = _("Base");
break;
case L_FULL:
str = _("Full");
break;
Expand Down
39 changes: 26 additions & 13 deletions src/lib/var.c
Expand Up @@ -2433,17 +2433,21 @@ var_config(
...)
{
va_list ap;
var_rc_t rc;
var_rc_t rc = VAR_OK;

if (var == NULL)
if (var == NULL) {
return VAR_RC(VAR_ERR_INVALID_ARGUMENT);
}

va_start(ap, mode);
switch (mode) {
case VAR_CONFIG_SYNTAX: {
var_syntax_t *s;
s = (var_syntax_t *)va_arg(ap, void *);
if (s == NULL)
return VAR_RC(VAR_ERR_INVALID_ARGUMENT);
if (s == NULL) {
rc = VAR_RC(VAR_ERR_INVALID_ARGUMENT);
goto bail_out;
}
var->syntax.escape = s->escape;
var->syntax.delim_init = s->delim_init;
var->syntax.delim_open = s->delim_open;
Expand All @@ -2452,18 +2456,23 @@ var_config(
var->syntax.index_close = s->index_close;
var->syntax.index_mark = s->index_mark;
var->syntax.name_chars = NULL; /* unused internally */
if ((rc = expand_character_class(s->name_chars, var->syntax_nameclass)) != VAR_OK)
return VAR_RC(rc);
if ( var->syntax_nameclass[(int)var->syntax.delim_init]
|| var->syntax_nameclass[(int)var->syntax.delim_open]
|| var->syntax_nameclass[(int)var->syntax.delim_close]
|| var->syntax_nameclass[(int)var->syntax.escape])
return VAR_RC(VAR_ERR_INVALID_CONFIGURATION);
if ((rc = expand_character_class(s->name_chars, var->syntax_nameclass)) != VAR_OK) {
VAR_RC(rc);
goto bail_out;
}
if (var->syntax_nameclass[(int)var->syntax.delim_init] ||
var->syntax_nameclass[(int)var->syntax.delim_open] ||
var->syntax_nameclass[(int)var->syntax.delim_close] ||
var->syntax_nameclass[(int)var->syntax.escape]) {
rc = VAR_RC(VAR_ERR_INVALID_CONFIGURATION);
goto bail_out;
}
break;
}
case VAR_CONFIG_CB_VALUE: {
var_cb_value_t fct;
void *ctx;

fct = (var_cb_value_t)va_arg(ap, void *);
ctx = (void *)va_arg(ap, void *);
var->cb_value_fct = fct;
Expand All @@ -2473,17 +2482,21 @@ var_config(
case VAR_CONFIG_CB_OPERATION: {
var_cb_operation_t fct;
void *ctx;

fct = (var_cb_operation_t)va_arg(ap, void *);
ctx = (void *)va_arg(ap, void *);
var->cb_operation_fct = fct;
var->cb_operation_ctx = ctx;
break;
}
default:
return VAR_RC(VAR_ERR_INVALID_ARGUMENT);
rc = VAR_RC(VAR_ERR_INVALID_ARGUMENT);
goto bail_out;
}

bail_out:
va_end(ap);
return VAR_OK;
return rc;
}

/* perform unescape operation on a buffer */
Expand Down
2 changes: 1 addition & 1 deletion src/stored/spool.c
Expand Up @@ -256,7 +256,7 @@ static bool despool_data(DCR *dcr, bool commit)
rdev = (DEVICE *)malloc(sizeof(DEVICE));
memset(rdev, 0, sizeof(DEVICE));
rdev->dev_name = get_memory(strlen(spool_name)+1);
bstrncpy(rdev->dev_name, spool_name, sizeof(rdev->dev_name));
bstrncpy(rdev->dev_name, spool_name, sizeof_pool_memory(rdev->dev_name));
rdev->errmsg = get_pool_memory(PM_EMSG);
*rdev->errmsg = 0;
rdev->max_block_size = dcr->dev->max_block_size;
Expand Down
6 changes: 4 additions & 2 deletions src/tools/bsmtp.c
Expand Up @@ -412,15 +412,17 @@ int main (int argc, char *argv[])
my_hostname, gai_strerror(res));
exit(1);
}
strcpy(my_hostname, ai->ai_canonname);
strncpy(my_hostname, ai->ai_canonname, sizeof(my_hostname) - 1);
my_hostname[sizeof(my_hostname)] = '\0';
freeaddrinfo(ai);
#else
if ((hp = gethostbyname(my_hostname)) == NULL) {
Pmsg2(0, _("Fatal gethostbyname for myself failed \"%s\": ERR=%s\n"),
my_hostname, strerror(errno));
exit(1);
}
strcpy(my_hostname, hp->h_name);
strncpy(my_hostname, hp->h_name, sizeof(my_hostname) - 1);
my_hostname[sizeof(my_hostname)] = '\0';
#endif
Dmsg1(20, "My hostname is: %s\n", my_hostname);

Expand Down

0 comments on commit 23afadf

Please sign in to comment.