Merge lp:~brianaker/drizzle/ip-memory-leak into lp:~drizzle-trunk/drizzle/development

Proposed by Brian Aker
Status: Merged
Approved by: Brian Aker
Approved revision: not available
Merged at revision: 2423
Proposed branch: lp:~brianaker/drizzle/ip-memory-leak
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: 85 lines (+16/-14)
1 file modified
drizzled/type/ipv6.h (+16/-14)
To merge this branch: bzr merge lp:~brianaker/drizzle/ip-memory-leak
Reviewer Review Type Date Requested Status
Drizzle Merge Team Pending
Review via email: mp+76436@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'drizzled/type/ipv6.h'
--- drizzled/type/ipv6.h 2011-08-21 23:08:13 +0000
+++ drizzled/type/ipv6.h 2011-09-21 15:52:27 +0000
@@ -185,7 +185,9 @@
185 int ipv6_inet_pton(const char *src)185 int ipv6_inet_pton(const char *src)
186 {186 {
187 if (strlen(src)> IPV6_DISPLAY_LENGTH)187 if (strlen(src)> IPV6_DISPLAY_LENGTH)
188 return 0; //Invalid IPaddress188 {
189 return 0; //Invalid IPaddress
190 }
189191
190 //Local variables192 //Local variables
191 char ipv6[IPV6_BUFFER_LENGTH];193 char ipv6[IPV6_BUFFER_LENGTH];
@@ -298,14 +300,14 @@
298 return 0;300 return 0;
299 }301 }
300302
301 int num_miss_octet =0, size =0;303 int num_miss_octet =0;
302304
303 num_miss_octet = 8 - octet_count;305 num_miss_octet = 8 - octet_count;
306#if 0
304 size = 2*num_miss_octet +1;307 size = 2*num_miss_octet +1;
305308#endif
306 char * zero_append = new char[size];309
307310 std::string zero_append;
308 memset(zero_append, 0, sizeof(zero_append));
309311
310 ptr_src = ipv6_temp;312 ptr_src = ipv6_temp;
311313
@@ -343,22 +345,24 @@
343 if(colon>0)345 if(colon>0)
344 {346 {
345 //zero padding format according to the '::' position347 //zero padding format according to the '::' position
346 strcpy(zero_append,"");348 zero_append+= "";
347349
348 for (int i= 0; i < num_miss_octet; i++)350 for (int i= 0; i < num_miss_octet; i++)
349 {351 {
350 if(colon==1) // start352 if(colon==1) // start
351 {353 {
352 strcat(zero_append,"0:");354 zero_append+= "0:";
353 }355 }
356
354 if(colon==2 || colon==3) //middle or end colon =2 shows at end357 if(colon==2 || colon==3) //middle or end colon =2 shows at end
355 {358 {
356 strcat(zero_append,":0");359 zero_append+= ":0";
357 }360 }
358 }361 }
362
359 if(colon==3)363 if(colon==3)
360 {364 {
361 strcat(zero_append,":");365 zero_append+= ":";
362 }366 }
363367
364 ptr_src = temp_end;368 ptr_src = temp_end;
@@ -390,11 +394,11 @@
390394
391 if(colon==2) // end395 if(colon==2) // end
392 {396 {
393 strcat(temp_first,zero_append);397 strcat(temp_first, zero_append.c_str());
394 }398 }
395 else399 else
396 {400 {
397 strcat(temp_first,zero_append);401 strcat(temp_first, zero_append.c_str());
398402
399 strcat(temp_first,temp_end);403 strcat(temp_first,temp_end);
400 }404 }
@@ -461,8 +465,6 @@
461 ptr_src = strtok (NULL, ":");465 ptr_src = strtok (NULL, ":");
462 }// end of main while loop466 }// end of main while loop
463467
464 delete [] zero_append;
465
466 return 1;468 return 1;
467 }// end of Ipv6_Inet_pton function469 }// end of Ipv6_Inet_pton function
468470