summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Winter <allen.winter@kdab.com>2021-02-28 17:42:53 -0500
committerAllen Winter <allen.winter@kdab.com>2021-04-11 13:00:47 -0400
commit26dabee3ef4a741a829bc241ed3dbd0dd2e91ebe (patch)
treecf34457d086de30bd5ebfc9f9c16ae7063d0f9bd
parentd6688a6b22b43e160aa1000f76ecafa49d9a8ce4 (diff)
downloadlibical-git-26dabee3ef4a741a829bc241ed3dbd0dd2e91ebe.tar.gz
various small fixes found by Coverity
-rw-r--r--src/libical/icalrecur.c9
-rw-r--r--src/libical/icaltz-util.c42
-rw-r--r--src/libicalss/icalgauge.c5
-rw-r--r--src/libicalss/icalspanlist.c1
-rw-r--r--src/test/regression-component.c2
-rw-r--r--src/test/regression.c4
6 files changed, 25 insertions, 38 deletions
diff --git a/src/libical/icalrecur.c b/src/libical/icalrecur.c
index 4774cb09..d4f02234 100644
--- a/src/libical/icalrecur.c
+++ b/src/libical/icalrecur.c
@@ -2745,14 +2745,14 @@ static short daymask_find_next_bit(icalrecur_iterator *impl)
short days_index = impl->days_index + 1;
unsigned long v;
short startBitIndex;
- int wordIdx;
+ unsigned short wordIdx, maxWordIdx;
if (days_index >= ICAL_YEARDAYS_MASK_SIZE)
return ICAL_YEARDAYS_MASK_SIZE;
// Prepare the first word, where searching might not start at the beginning
startBitIndex = days_index + ICAL_YEARDAYS_MASK_OFFSET;
- wordIdx = (int)(startBitIndex / BITS_PER_LONG);
+ wordIdx = (unsigned short)(startBitIndex / BITS_PER_LONG);
v = days[wordIdx];
v >>= startBitIndex % BITS_PER_LONG;
@@ -2761,7 +2761,8 @@ static short daymask_find_next_bit(icalrecur_iterator *impl)
days_index += BITS_PER_LONG - startBitIndex % BITS_PER_LONG;
// Are there more empty words following? Skip them.
- while (days_index < ICAL_YEARDAYS_MASK_SIZE) {
+ maxWordIdx = (unsigned short)(LONGS_PER_BITS(ICAL_YEARDAYS_MASK_SIZE)) - 1;
+ while (days_index < ICAL_YEARDAYS_MASK_SIZE && wordIdx < maxWordIdx) {
wordIdx++;
v = days[wordIdx];
@@ -2774,7 +2775,6 @@ static short daymask_find_next_bit(icalrecur_iterator *impl)
}
if (v) {
-
// We found a word containing the next bit but don't know the exact
// position yet. Do a b-search to find it.
@@ -2783,7 +2783,6 @@ static short daymask_find_next_bit(icalrecur_iterator *impl)
mask = (((unsigned long)1) << maskSize) - 1;
while (maskSize) {
-
if ((v & mask) == 0) {
v >>= maskSize;
days_index += maskSize;
diff --git a/src/libical/icaltz-util.c b/src/libical/icaltz-util.c
index 0afa17fa..7ffe7c68 100644
--- a/src/libical/icaltz-util.c
+++ b/src/libical/icaltz-util.c
@@ -387,21 +387,19 @@ icalcomponent *icaltzutil_fetch_timezone(const char *location)
}
EFREAD(r_trans, (size_t)trans_size, num_trans, f);
temp = r_trans;
- if (num_trans) {
- trans_idx = calloc(num_trans, sizeof(int));
- if (trans_idx == NULL) {
- icalerror_set_errno(ICAL_NEWFAILED_ERROR);
- goto error;
- }
- for (i = 0; i < num_trans; i++) {
- trans_idx[i] = fgetc(f);
- if (trans_size == 8) {
- transitions[i] = (time_t) decode64(r_trans);
- } else {
- transitions[i] = (time_t) decode(r_trans);
- }
- r_trans += trans_size;
+ trans_idx = calloc(num_trans, sizeof(int));
+ if (trans_idx == NULL) {
+ icalerror_set_errno(ICAL_NEWFAILED_ERROR);
+ goto error;
+ }
+ for (i = 0; i < num_trans; i++) {
+ trans_idx[i] = fgetc(f);
+ if (trans_size == 8) {
+ transitions[i] = (time_t) decode64(r_trans);
+ } else {
+ transitions[i] = (time_t) decode(r_trans);
}
+ r_trans += trans_size;
}
r_trans = temp;
@@ -500,11 +498,7 @@ icalcomponent *icaltzutil_fetch_timezone(const char *location)
icalcomponent_add_property(tz_comp, icalprop);
prev_idx = 0;
- if (num_trans == 0) {
- prev_idx = idx = 0;
- } else {
- idx = trans_idx[0];
- }
+ idx = trans_idx[0];
for (i = 1; i < num_trans; i++) {
int by_day;
@@ -681,14 +675,8 @@ icalcomponent *icaltzutil_fetch_timezone(const char *location)
icalcomponent_add_component(tz_comp, comp);
}
- if (num_trans <= 1) {
- time_t start;
-
- if (num_trans == 1) {
- start = transitions[0] + types[prev_idx].gmtoff;
- } else {
- start = 0;
- }
+ if (num_trans == 1) {
+ time_t start = transitions[0] + types[prev_idx].gmtoff;
// This time zone doesn't transition, insert a single VTIMEZONE component
if (types[idx].isdst) {
diff --git a/src/libicalss/icalgauge.c b/src/libicalss/icalgauge.c
index f056ce3d..43d7b549 100644
--- a/src/libicalss/icalgauge.c
+++ b/src/libicalss/icalgauge.c
@@ -67,10 +67,7 @@ icalgauge *icalgauge_new_from_sql(const char *sql, int expand)
int icalgauge_get_expand(icalgauge *gauge)
{
icalerror_check_arg_rz((gauge != 0), "gauge");
- if (gauge != 0) {
- return gauge->expand;
- }
- return -1;
+ return gauge->expand;
}
void icalgauge_free(icalgauge *gauge)
diff --git a/src/libicalss/icalspanlist.c b/src/libicalss/icalspanlist.c
index b43bd686..2ea91cf8 100644
--- a/src/libicalss/icalspanlist.c
+++ b/src/libicalss/icalspanlist.c
@@ -233,6 +233,7 @@ struct icalperiodtype icalspanlist_next_free_time(icalspanlist *sl, struct icalt
period.start = icaltime_null_time();
period.end = icaltime_null_time();
+ period.duration = icaldurationtype_null_duration();
itr = pvl_head(sl->spans);
s = (struct icaltime_span *)pvl_data(itr);
diff --git a/src/test/regression-component.c b/src/test/regression-component.c
index e51d2821..3e147e9e 100644
--- a/src/test/regression-component.c
+++ b/src/test/regression-component.c
@@ -97,6 +97,7 @@ void create_new_component()
rtime.period.start = icaltime_from_timet_with_zone(1023398689, 0, NULL);
rtime.period.end = icaltime_from_timet_with_zone(1023409689, 0, NULL);
rtime.period.end.hour++;
+ rtime.period.duration = icaldurationtype_null_duration();
rtime.time = icaltime_null_time();
/* Create calendar and add properties */
@@ -221,6 +222,7 @@ void create_new_component_with_va_args()
rtime.period.start = icaltime_from_timet_with_zone(time(0), 0, NULL);
rtime.period.end = icaltime_from_timet_with_zone(time(0), 0, NULL);
rtime.period.end.hour++;
+ rtime.period.duration = icaldurationtype_null_duration();
rtime.time = icaltime_null_time();
calendar =
diff --git a/src/test/regression.c b/src/test/regression.c
index 91646df1..8faf2713 100644
--- a/src/test/regression.c
+++ b/src/test/regression.c
@@ -1090,6 +1090,7 @@ void test_restriction()
rtime.period.start = icaltime_from_timet_with_zone(time(0), 0, NULL);
rtime.period.end = icaltime_from_timet_with_zone(time(0), 0, NULL);
rtime.period.end.hour++;
+ rtime.period.duration = icaldurationtype_null_duration();
rtime.time = icaltime_null_time();
comp =
@@ -1141,8 +1142,7 @@ void test_restriction()
icalproperty_vanew_dtend(atime,
icalparameter_new_tzid("America/New_York"),
(void *)0),
- icalproperty_new_location("1CP Conference Room 4350"), (void *)0),
- (void *)0);
+ icalproperty_new_location("1CP Conference Room 4350"), (void *)0), (void *)0);
valid = icalrestriction_check(comp);