The logic in the ‘is the array null or empty’ check was disjunctive
rather than conjunctive. If (str_array == null), the condition would
have short-circuited and tried to evaluate str_array.length, which would
have crashed.
Coverity CID: #
1462389 (spotted when scanning Tracker)
https://bugzilla.gnome.org/show_bug.cgi?id=791257
if (separator == null) {
separator = "";
}
- if (str_array != null || str_array.length > 0 || (str_array.length == -1 && str_array[0] != null)) {
+ if (str_array != null && (str_array.length > 0 || (str_array.length == -1 && str_array[0] != null))) {
int i;
size_t len = 1;
for (i = 0 ; (str_array.length != -1 && i < str_array.length) || (str_array.length == -1 && str_array[i] != null) ; i++) {