OSSP CVS Repository

ossp - Check-in [3201]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3201
Date: 2003-Feb-11 08:51:27 (local)
2003-Feb-11 07:51:27 (UTC)
User:rse
Branch:
Comment: fix all dmalloc-detected memory leaks
Tickets:
Inspections:
Files:
ossp-pkg/l2/l2_spec_parse.y      1.10 -> 1.11     12 inserted, 0 deleted
ossp-pkg/l2/l2_test.c      1.52 -> 1.53     4 inserted, 0 deleted

ossp-pkg/l2/l2_spec_parse.y 1.10 -> 1.11

--- l2_spec_parse.y      2003/01/06 11:41:52     1.10
+++ l2_spec_parse.y      2003/02/11 07:51:27     1.11
@@ -169,8 +169,10 @@
           unsigned int levelmask;
           if ((CTX->rv = l2_util_s2l($1, strlen($1), ',', &levelmask)) != L2_OK) {
               l2_spec_error(CTX, CTX->rv, &yylloc, "invalid level '%s'", $1);
+              free($1);
               YYERROR;
           }
+          free($1);
           $$ = L2_LEVEL_UPTO(levelmask);
       }
     | '(' channel_level_mask ')' {
@@ -184,16 +186,20 @@
           unsigned int levelmask;
           if ((CTX->rv = l2_util_s2l($1, strlen($1), ',', &levelmask)) != L2_OK) {
               l2_spec_error(CTX, CTX->rv, &yylloc, "invalid level '%s'", $1);
+              free($1);
               YYERROR;
           }
+          free($1);
           $$ = levelmask;
       }
     | T_ID '|' channel_level_mask {
           unsigned int levelmask;
           if ((CTX->rv = l2_util_s2l($1, strlen($1), ',', &levelmask)) != L2_OK) {
               l2_spec_error(CTX, CTX->rv, &yylloc, "invalid level '%s'", $1);
+              free($1);
               YYERROR;
           }
+          free($1);
           $$ = levelmask | $3;
       }
     ;
@@ -204,8 +210,10 @@
           l2_channel_t *ch;
           if ((CTX->rv = l2_channel_create(&ch, CTX->env, $1)) != L2_OK) {
               l2_spec_error(CTX, CTX->rv, &yylloc, "failed to create channel '%s'", $1);
+              free($1);
               YYERROR;
           }
+          free($1);
           $$ = ch;
           /* provide channel to channel_param rule below because it does
              not know where on the token stack our $$ is because it is a
@@ -237,8 +245,12 @@
     : T_ID '=' { l2_spec_scan_push(CTX, "SS_PARAM"); } T_PARAM { l2_spec_scan_pop(CTX); } {
           if ((CTX->rv = l2_channel_configure(CTX->chTmp, "%s=\"%s\"", $1, $4)) != L2_OK) {
               l2_spec_error(CTX, CTX->rv, &yylloc, "failed to configure channel with '%s=\"%s\"'", $1, $4);
+              free($1);
+              free($4);
               YYERROR;
           }
+          free($1);
+          free($4);
       }
     ;
 


ossp-pkg/l2/l2_test.c 1.52 -> 1.53

--- l2_test.c    2003/01/27 16:01:35     1.52
+++ l2_test.c    2003/02/11 07:51:28     1.53
@@ -170,6 +170,10 @@
     if ((rv = l2_channel_destroy(ch)) != L2_OK)
         die(env, rv, "failed to destroy channel tree");
 
+    /* destroy environment */
+    if ((rv = l2_env_destroy(env)) != L2_OK)
+        die(env, rv, "failed to destroy environment");
+
     return 0;
 }
 

CVSTrac 2.0.1