diff options
author | unknown <petr@mysql.com> | 2005-06-29 02:24:31 +0400 |
---|---|---|
committer | unknown <petr@mysql.com> | 2005-06-29 02:24:31 +0400 |
commit | e29f5221973ad7bf48f0e4152c5bb8a4491de7c1 (patch) | |
tree | d70b49d5c16b761790269c52ce1666b596d3dcac /mysys/default_modify.c | |
parent | 6311217a23cd8424ad10a23ee752141257275252 (diff) | |
download | mariadb-git-e29f5221973ad7bf48f0e4152c5bb8a4491de7c1.tar.gz |
post review fixes to a patch
mysys/default_modify.c:
post revew fixes to a patch
Diffstat (limited to 'mysys/default_modify.c')
-rw-r--r-- | mysys/default_modify.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/mysys/default_modify.c b/mysys/default_modify.c index d40529817cd..e2bc12a2c95 100644 --- a/mysys/default_modify.c +++ b/mysys/default_modify.c @@ -70,8 +70,9 @@ int modify_defaults_file(const char *file_location, const char *option, char linebuff[BUFF_SIZE], *src_ptr, *dst_ptr, *file_buffer; uint opt_len, optval_len, sect_len, nr_newlines= 0, buffer_size; my_bool in_section= FALSE, opt_applied= 0; - int reserve_occupied= 0, reserve_extended= 1, old_opt_len; - int new_opt_len= opt_len + 1 + optval_len + NEWLINE_LEN; + uint reserve_extended= 1, old_opt_len= 0; + uint new_opt_len= opt_len + 1 + optval_len + NEWLINE_LEN; + int reserve_occupied= 0; DBUG_ENTER("modify_defaults_file"); if (!(cnf_file= my_fopen(file_location, O_RDWR | O_BINARY, MYF(0)))) @@ -133,14 +134,20 @@ int modify_defaults_file(const char *file_location, const char *option, */ if (opt_applied) { - old_opt_len= strlen(linebuff); + src_ptr+= opt_len; /* If we correct an option, we know it's name */ + old_opt_len= opt_len; + + while (*src_ptr++) /* Find the end of the line */ + old_opt_len++; + /* could be negative */ - reserve_occupied+= new_opt_len - old_opt_len; - if (reserve_occupied > RESERVE*reserve_extended) + reserve_occupied+= (int) new_opt_len - (int) old_opt_len; + if ((int) reserve_occupied > (int) (RESERVE*reserve_extended)) { - file_buffer= (char*) my_realloc(file_buffer, buffer_size + - RESERVE*reserve_extended, - MYF(MY_WME)); + if (!(file_buffer= (char*) my_realloc(file_buffer, buffer_size + + RESERVE*reserve_extended, + MYF(MY_WME|MY_FREE_ON_ERROR)))) + goto malloc_err; reserve_extended++; } } |