Services and MySQL 4.1.11
During FreeQuest’s upgrade to the current CVS version of services, a change in MySQL was noticed. Due to a new field showing up during the “select stats from like ‘quarantine’” query, and this affects the result get_table_stats in mysql.c expects. Hence, the pointer that is supposed to be an int, suddenly becomes a string, which results in services crashing. (Only occurs when services recieves a SQLINE, and is to compare it to the current SQLINES in the quarantine table).
To fix this problem, change the following in mysql.c, line 241:
row = smysql_fetch_row(mysql, result);
*nrec = strtoul(row[3], NULL, 10);
*bytes = strtoul(row[5], NULL, 10) + strtoul(row[7], NULL, 10);
to
row = smysql_fetch_row(mysql, result);
*nrec = strtoul(row[4], NULL, 10);
*bytes = strtoul(row[6], NULL, 10) + strtoul(row[8], NULL, 10);
We will update CVS and supply a patch for backward compability to MySQL 4.0.x soon.
Other than that, we can gladly inform you that FreeQuest’s services is running smoothly after the transition.