# wasm2c: avoid indexing null pointer triggering undefined behavior · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/1165e13c256cb4aeb76674c2bc34f35c6ebd375b)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 1165e13c256cb4aeb76674c2bc34f35c6ebd375b

Requested commit: 1165e13c256cb4aeb76674c2bc34f35c6ebd375b

Commit: 1165e13c256cb4aeb76674c2bc34f35c6ebd375b

Tree: 294f03129e5c7cabfdab92adfd9fa289e8d8eb44

Author: Jonathan Marler

Committer: Jacob Young

## Message

```
wasm2c: avoid indexing null pointer triggering undefined behavior

Using zig cc to compile and run wasm2c on zig.wasm on Windows triggers
what appears to be a sanitizer crash.  The FuncGen reuse array pointer is
initialized to null and at some point it's resized to a length of zero,
which triggers this code to execute:

    memcpy(&self->reuse[self->reuse_i], &self->reuse[reuse_top], sizeof(uint32_t) * reuse_n);

Given the current values, this equates to:

    memcpy(&(NULL)[0], &(NULL)[0], 0);

Taking the address of the first element of a null pointer doesn't trigger
any actual runtime problem, since the pointer won't be dereferenced because
were passing 0 as the length to memcpy, however, it seems that the C spec
considers indexing a null pointer to be undefined behavior even if you
don't use the resulting value (or are just taking the address of an
indexed pointer).

```

## Parents

- [455899668b620dfda40252501c748c0a983555bd](https://git.cafe/gitcafe/zig/commit/455899668b620dfda40252501c748c0a983555bd?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/1165e13c256cb4aeb76674c2bc34f35c6ebd375b?format=markdown)
