Restrict usernames to the same character set as tags
#include <stdint.h>
#include <time.h>
+#define VALID_CHAR(c) ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '-' || c == '_')
+#define WHITESPACE(c) (c == ' ' || c == '\t' || c == '\n' || c == '\r')
+
struct record {
uint32_t offset;
uint16_t length;
#include <sys/mman.h>
#include "tags.h"
#include "util.h"
+#include "database.h"
#include "config.h"
-#define TAG_CHAR(c) ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '-' || c == '_')
-#define WHITESPACE(c) (c == ' ' || c == '\t' || c == '\n' || c == '\r')
int tag_scan(const char *author, const char *data, int len, uint64_t record) {
char *taglist[MAX_TAGS_PER_RECORD];
}
int begin = i;
int start = ++i;
- while (i < len && TAG_CHAR(data[i]) && (i - start < MAX_TAG_LENGTH)) {
+ while (i < len && VALID_CHAR(data[i]) && (i - start < MAX_TAG_LENGTH)) {
i++;
}
if (start - i == 0) continue;
* BSD-style license. Please see the COPYING file for details.
*/
-#define VALID_CHAR(x) (x == ' ' || x == '\'' || x == '-' || x == '.' || (x >= '0' && x <= '9') || (x >= 'A' && x <= 'Z') || x == '_' || (x >= 'a' && x <= 'z'))
+#include "database.h"
int valid_name(const char *name) {
int i;