X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mysql_selector.c;h=e2c9562c7aa64bb14e4f5f4830ca0117130aaa63;hp=ff299cdf0fb59cba31abc4d6263e62b19f12cfad;hb=41f13bf6cac519b46ed24892e2c84384ef5dc500;hpb=e2630b3d4a712faca04be918d4ee12eae5a13ff4 diff --git a/mysql_selector.c b/mysql_selector.c index ff299cdf..e2c9562c 100644 --- a/mysql_selector.c +++ b/mysql_selector.c @@ -663,7 +663,7 @@ out: return ret; } -static char *escape_blob(char* old, int size) +static char *escape_blob(const char* old, int size) { char *new; @@ -674,7 +674,7 @@ static char *escape_blob(char* old, int size) return new; } -static char *escape_str(char* old) +static char *escape_str(const char* old) { return escape_blob(old, strlen(old)); } @@ -2321,7 +2321,6 @@ static int mysql_write_tmp_file(const char *dir, const char *name) { int ret = -E_TMPFILE; char *msg = make_message("%s\t%s\n", dir, name); - if (fputs(msg, out_file) != EOF) ret = 1; free(msg); @@ -2366,7 +2365,7 @@ static int com_upd(int fd, int argc, __a_unused char *argv[]) goto out; if ((ret = real_query("delete from dir")) < 0) goto out; - query = make_message("load data infile '%s' into table dir " + query = make_message("load data infile '%s' ignore into table dir " "fields terminated by '\t' lines terminated by '\n' " "(dir, name)", tempname); ret = real_query(query); @@ -2384,12 +2383,15 @@ static int com_upd(int fd, int argc, __a_unused char *argv[]) goto out; } while ((row = mysql_fetch_row(result))) { + char *erow; ret = -E_NOROW; if (!row[0]) goto out; send_va_buffer(fd, "new entry: %s\n", row[0]); + erow = escape_str(row[0]); query = make_message("insert into data (name, pic_id) values " - "('%s','%s')", row[0], "1"); + "('%s','%s')", erow, "1"); + free(erow); ret = real_query(query); free(query); if (ret < 0)