Mercurial > hg > freeDiameter
comparison extensions/app_acct/acct_db.c @ 1233:0b4abb03bcaf
Fix double increment when realloc resulting in invalid SQL query
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Wed, 04 Sep 2013 02:14:31 +0200 |
parents | 1af09cc156d6 |
children |
comparison
equal
deleted
inserted
replaced
1232:9e92fa478c23 | 1233:0b4abb03bcaf |
---|---|
172 } | 172 } |
173 | 173 |
174 ADD_EXTEND("\") VALUES ("); | 174 ADD_EXTEND("\") VALUES ("); |
175 | 175 |
176 if (acct_config->tsfield) { | 176 if (acct_config->tsfield) { |
177 ADD_EXTEND("$%d, ", ++idx); | 177 ++idx; |
178 ADD_EXTEND("$%d, ", idx); | |
178 } | 179 } |
179 if (acct_config->srvnfield) { | 180 if (acct_config->srvnfield) { |
180 ADD_EXTEND("'"); | 181 ADD_EXTEND("'"); |
181 ADD_ESCAPE(fd_g_config->cnf_diamid); | 182 ADD_ESCAPE(fd_g_config->cnf_diamid); |
182 ADD_EXTEND("', "); | 183 ADD_EXTEND("', "); |
183 } | 184 } |
184 | 185 |
185 for (li = emptyrecords.all.next; li != &emptyrecords.all; li = li->next) { | 186 for (li = emptyrecords.all.next; li != &emptyrecords.all; li = li->next) { |
186 struct acct_record_item * i = (struct acct_record_item *)(li->o); | 187 struct acct_record_item * i = (struct acct_record_item *)(li->o); |
187 ADD_EXTEND("$%d::%s", ++idx, diam2db_types_mapping[i->param->avptype]); | 188 ++idx; |
189 ADD_EXTEND("$%d::%s", idx, diam2db_types_mapping[i->param->avptype]); | |
188 | 190 |
189 if (li->next != &emptyrecords.all) { | 191 if (li->next != &emptyrecords.all) { |
190 ADD_EXTEND(", "); | 192 ADD_EXTEND(", "); |
191 } | 193 } |
192 } | 194 } |