From ed9e3409e4e034f353e87874d960c1d320c63f7d Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Wed, 18 Nov 2009 17:24:10 +0200 Subject: Bug#48864: MySQL fails to compile on 64 bit Fedora 12 Fixed 2 errors in comp_err executable : 1. Wrong (off by 1) length passed to my_checksum() 2. strmov() was used on overlapping strings. This is not legal according to the docs in stpcpy(). Used the overlap safe memmove() instead. --- extra/comp_err.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'extra') diff --git a/extra/comp_err.c b/extra/comp_err.c index 8814a045f36..342085b64d6 100644 --- a/extra/comp_err.c +++ b/extra/comp_err.c @@ -660,7 +660,7 @@ static ha_checksum checksum_format_specifier(const char* msg) case 'u': case 'x': case 's': - chksum= my_checksum(chksum, start, (uint) (p - start)); + chksum= my_checksum(chksum, start, (uint) (p + 1 - start)); start= 0; /* Not in format specifier anymore */ break; @@ -1030,8 +1030,10 @@ static char *parse_text_line(char *pos) { int i, nr; char *row= pos; + size_t len; DBUG_ENTER("parse_text_line"); + len= strlen (pos); while (*pos) { if (*pos == '\\') @@ -1039,11 +1041,11 @@ static char *parse_text_line(char *pos) switch (*++pos) { case '\\': case '"': - VOID(strmov(pos - 1, pos)); + VOID(memmove (pos - 1, pos, len - (row - pos))); break; case 'n': pos[-1]= '\n'; - VOID(strmov(pos, pos + 1)); + VOID(memmove (pos, pos + 1, len - (row - pos))); break; default: if (*pos >= '0' && *pos < '8') @@ -1053,10 +1055,10 @@ static char *parse_text_line(char *pos) nr= nr * 8 + (*(pos++) - '0'); pos -= i; pos[-1]= nr; - VOID(strmov(pos, pos + i)); + VOID(memmove (pos, pos + i, len - (row - pos))); } else if (*pos) - VOID(strmov(pos - 1, pos)); /* Remove '\' */ + VOID(memmove (pos - 1, pos, len - (row - pos))); /* Remove '\' */ } } else -- cgit v1.2.1 From 78c61d6b836acc87690243f4fdc522aff40b18d2 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Wed, 16 Dec 2009 11:24:30 +0300 Subject: Remove .cvsignore files (attempt #2). --- extra/.cvsignore | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 extra/.cvsignore (limited to 'extra') diff --git a/extra/.cvsignore b/extra/.cvsignore deleted file mode 100644 index e0042c405cc..00000000000 --- a/extra/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -.deps -.libs -Makefile -Makefile.in -comp_err -my_print_defaults -perror -print_defaults -replace -resolveip -- cgit v1.2.1