Found by UndefinedBehaviorSanitizer.
array->data = start;
start += prepend;
- memcpy(start, array->start, array->length * sizeof(njs_value_t));
+ if (array->length != 0) {
+ memcpy(start, array->start, array->length * sizeof(njs_value_t));
+ }
array->start = start;
* loop or switch statement.
*/
if ((mask & NJS_GENERATOR_ALL) == NJS_GENERATOR_ALL
- && !njs_strstr_eq(label, &no_label))
+ && label->length != 0)
{
mask |= NJS_GENERATOR_BLOCK;
}
ref_err->token_line = node->token_line;
- ret = njs_name_copy(vm, &ref_err->file, &node->scope->file);
- if (njs_slow_path(ret != NJS_OK)) {
- return NJS_ERROR;
+ ref_err->file.length = node->scope->file.length;
+
+ if (ref_err->file.length != 0) {
+ ret = njs_name_copy(vm, &ref_err->file, &node->scope->file);
+ if (njs_slow_path(ret != NJS_OK)) {
+ return NJS_ERROR;
+ }
}
return njs_name_copy(vm, &ref_err->name, &node->u.reference.name);
u_char *p;
int d;
double f, i;
- size_t length;
+ size_t size, length;
int64_t i64;
uint64_t ui64, frac;
njs_str_t *v;
copy:
- buf = njs_cpymem(buf, p, njs_min((size_t) (end - buf), length));
+ size = njs_min((size_t) (end - buf), length);
+
+ if (size != 0) {
+ buf = njs_cpymem(buf, p, size);
+ }
+
continue;
}
p = string;
for (i = 0; i < n; i++) {
- p = memcpy(p, part[i].start, part[i].size);
- p += part[i].size;
+ size = part[i].size;
+
+ if (size != 0) {
+ p = njs_cpymem(p, part[i].start, size);
+ }
/* GC: release valid values. */
}
frame->native.free = values + scope_size;
vm->scopes[NJS_SCOPE_GLOBAL] = (njs_value_t *) values;
- memcpy(values + NJS_INDEX_GLOBAL_OFFSET, vm->global_scope,
- vm->scope_size);
+
+ if (vm->global_scope != 0) {
+ memcpy(values + NJS_INDEX_GLOBAL_OFFSET, vm->global_scope,
+ vm->scope_size);
+ }
ret = njs_regexp_init(vm);
if (njs_slow_path(ret != NJS_OK)) {