return -1;
}
- MEM(buff = talloc_array(NULL, char, finfo.st_size + 1));
+ MEM(buff = talloc_array(NULL, uint8_t, finfo.st_size + 1));
len = fread(buff, sizeof(char), finfo.st_size + 1, f);
if (len > finfo.st_size) {
talloc_free(buff);
-
goto too_big;
}
}
buff[len] = '\0';
-
fclose(f);
/*
* Check input encoding is UTF8 compliant
*/
- p = buff;
- while(((*p == '\xa') && (cl = 1)) ||
- ((*p == '\xd') && (cl = 1)) ||
- (cl = fr_utf8_char((uint8_t *) p))) {
- p += cl;
+ for (p = buff; *p != '\0'; p += cl) {
+ if (*p < ' ') {
+ if ((*p != 0x0a) && (*p != 0x0d)) break;
+ cl = 1;
+ } else {
+ cl = fr_utf8_char(p);
+ if (!cl) break;
+ }
}
- if (p != (buff + len)) {
+ if (*p) {
radlog(L_ERR, "rlm_sql_sqlite: Bootstrap file contains "
- "none UTF8 char at offset %zu", p - buff);
-
+ "non-UTF8 char at offset %zu", p - buff);
talloc_free(buff);
-
return -1;
}