/* The data should already be NUL-terminated. */
CHAR16 *title = (CHAR16 *) (bcd + description_value->data_offset);
- title[description_value->data_size / sizeof(CHAR16)] = '\0';
+ title[description_value->data_size / sizeof(CHAR16) - 1] = '\0';
return title;
}
return EFI_SUCCESS;
/* Return buffer directly if it happens to be NUL terminated already */
- if (size >= sizeof(CHAR16) && buf[size/sizeof(CHAR16)] == 0) {
+ if (size >= sizeof(CHAR16) && buf[size / sizeof(CHAR16) - 1] == 0) {
*value = TAKE_PTR(buf);
return EFI_SUCCESS;
}
val = xallocate_pool(size + sizeof(CHAR16));
CopyMem(val, buf, size);
- val[size / sizeof(CHAR16)] = 0; /* NUL terminate */
+ val[size / sizeof(CHAR16) - 1] = 0; /* NUL terminate */
*value = val;
return EFI_SUCCESS;