Hi, I am working on extending “counted_by” attribute to pointers inside a structure per our previous discussion.
I need advice on the following question: Should -fsantize=bounds support array reference that was referenced through a pointer that has counted_by attribute? For the following small example: #include <stdlib.h> struct annotated { int b; int *c __attribute__ ((counted_by (b))); } *p_array_annotated; void __attribute__((__noinline__)) setup (int annotated_count) { p_array_annotated = (struct annotated *)malloc (sizeof (struct annotated)); p_array_annotated->c = (int *) malloc (annotated_count * sizeof (int)); p_array_annotated->b = annotated_count; return; } int main(int argc, char *argv[]) { setup (10); p_array_annotated->c[11] = 2; return 0; } Should ubsan add instrumentation to the above reference p_array_annoated->c[11] inside routine “main”? From my understanding, ubsan does not add bound checking for any pointer reference now, however, when the “counted_by” attribute is attached to a pointer field inside a structure, the “bound” information for this pointer is known, should we enhance the ubsan to instrument such reference? If Yes, then should we add the following limitation to the end user: When the counted_by attribute is attached to a pointer field, the -fsantize=bounds only work for such reference when the pointer is NOT casted to another type other than the original target type? Thanks for any comments and suggestions. Qing