Commit 4702ad54 authored by msvensson@pilot.blaudden's avatar msvensson@pilot.blaudden

Merge pilot.blaudden:/home/msvensson/mysql/comp_err_checksum/my50-comp_err_checksum

into  pilot.blaudden:/home/msvensson/mysql/comp_err_checksum/my51-comp_err_checksum
parents 85cbf076 05305f46
...@@ -16,7 +16,8 @@ ...@@ -16,7 +16,8 @@
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_srcdir)/sql -I$(top_srcdir)/sql
LDADD = @CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.a \ LDADD = @CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.a \
../dbug/libdbug.a ../strings/libmystrings.a ../dbug/libdbug.a ../strings/libmystrings.a \
$(ZLIB_LIBS)
BUILT_SOURCES= $(top_builddir)/include/mysqld_error.h \ BUILT_SOURCES= $(top_builddir)/include/mysqld_error.h \
$(top_builddir)/include/sql_state.h \ $(top_builddir)/include/sql_state.h \
$(top_builddir)/include/mysqld_ername.h $(top_builddir)/include/mysqld_ername.h
......
...@@ -637,27 +637,26 @@ static char checksum_format_specifier(const char* msg) ...@@ -637,27 +637,26 @@ static char checksum_format_specifier(const char* msg)
{ {
char chksum= 0; char chksum= 0;
const char* p= msg; const char* p= msg;
int is_format_specifier= 0; const char* start= 0;
int num_format_specifiers= 0; int num_format_specifiers= 0;
while (*p) while (*p)
{ {
if (*p == '%') if (*p == '%')
{ {
is_format_specifier= 1; /* Entering format specifier */ start= p+1; /* Entering format specifier */
num_format_specifiers++; num_format_specifiers++;
} }
else if (start)
if (is_format_specifier)
{ {
chksum^= *p;
switch(*p) switch(*p)
{ {
case 'd': case 'd':
case 'u': case 'u':
case 'x': case 'x':
case 's': case 's':
is_format_specifier= 0; /* Not in format specifier anymore */ chksum= my_checksum(chksum, start, p-start);
start= 0; /* Not in format specifier anymore */
break; break;
default: default:
...@@ -668,13 +667,13 @@ static char checksum_format_specifier(const char* msg) ...@@ -668,13 +667,13 @@ static char checksum_format_specifier(const char* msg)
p++; p++;
} }
if (is_format_specifier) if (start)
{ {
/* Still inside a format specifier after end of string */ /* Still inside a format specifier after end of string */
fprintf(stderr, "Still inside formatspecifier after end of string" fprintf(stderr, "Still inside formatspecifier after end of string"
" in'%s'\n", msg); " in'%s'\n", msg);
DBUG_ASSERT(is_format_specifier==0); DBUG_ASSERT(start==0);
} }
/* Add number of format specifiers to checksum as extra safeguard */ /* Add number of format specifiers to checksum as extra safeguard */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment