I ran into a bug copying the tags from an mp3 to an ogg when the comment tag was empty. void ByteVector::setData(const char *data, uint length) { detach(); resize(length); ::memcpy(DATA(d), data, length); } data was an empty string and length was 0. DATA(d) is expanded to &(d->data[0]), but d->data is empty