Here is AI Grok2 version, with no fixes:
int indexOf(uint8_t *buffer, size_t bufferSize, uint8_t *pattern, size_t patternSize) {
if (bufferSize < patternSize) {
return -1; // Pattern cannot fit in buffer
}
for (size_t i = 0; i <= bufferSize - patternSize; ++i) {
if (memcmp(&buffer[i], pattern, patternSize) == 0) {
return (int)i; // Match found, return index
}
}
return -1; // Pattern not found
}
The same AI Grok2 with asking to not use memcmp:
int indexOf(uint8_t *buffer, size_t bufferSize, uint8_t *pattern, size_t patternSize) {
if (bufferSize < patternSize) {
return -1; // Pattern cannot fit in buffer
}
for (size_t i = 0; i <= bufferSize - patternSize; ++i) {
size_t j;
for (j = 0; j < patternSize; ++j) {
if (buffer[i + j] != pattern[j]) {
break; // No match, continue searching
}
}
if (j == patternSize) {
return (int)i; // Match found, return index
}
}
return -1; // Pattern not found
}