Thread (34 messages) 34 messages, 5 authors, 2015-06-16

Re: [PATCH v13 02/14] perf, tools, jevents: Program to convert JSON file to C style file

From: Jiri Olsa <hidden>
Date: 2015-06-03 10:30:59
Also in: lkml

On Tue, Jun 02, 2015 at 10:12:02AM -0700, Sukadev Bhattiprolu wrote:

SNIP
+
+static char *file_name_to_table_name(char *fname)
+{
+	unsigned int i, j;
+	int c;
+	int n = 1024;		/* use max variable length? */
I think this should be at least PATH_MAX, or you might
actually use asprintf and have all below done within
one line or so

jirka
+	char *tblname;
+	char *p;
+
+	tblname = malloc(n);
+	if (!tblname)
+		return NULL;
+
+	p = basename(fname);
+
+	memset(tblname, 0, n);
+
+	/* Ensure table name starts with an alphabetic char */
+	strcpy(tblname, "pme_");
+
+	n = strlen(fname) + strlen(tblname);
+	n = min(1024, n);
+
+	for (i = 0, j = strlen(tblname); i < strlen(fname); i++, j++) {
+		c = p[i];
+		if (isalnum(c) || c == '_')
+			tblname[j] = c;
+		else if (c == '-')
+			tblname[j] = '_';
+		else if (c == '.') {
+			tblname[j] = '\0';
+			break;
+		} else {
+			pr_err("%s: Invalid character '%c' in file name %s\n",
+					prog, c, p);
+			free(tblname);
+			return NULL;
+		}
+	}
+
+	return tblname;
+}
SNIP
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help