diff options
| -rw-r--r-- | hcid/main.c | 2 | ||||
| -rw-r--r-- | hcid/parser.y | 12 | 
2 files changed, 9 insertions, 5 deletions
| diff --git a/hcid/main.c b/hcid/main.c index dd3367b7..567dfab3 100644 --- a/hcid/main.c +++ b/hcid/main.c @@ -80,7 +80,7 @@ struct device_opts *alloc_device_opts(char *ref)  		exit(1);  	} -	device->ref = ref; +	device->ref = strdup(ref);  	device->next = device_list;  	device_list = device; diff --git a/hcid/parser.y b/hcid/parser.y index aae915e9..cf947fbf 100644 --- a/hcid/parser.y +++ b/hcid/parser.y @@ -50,6 +50,8 @@ int yyparse(void);  int yylex(void);  int yyerror(char *s);  +void yylex_destroy(void); +  %}  %union { @@ -221,23 +223,23 @@ device_opt:  dev_name:    WORD		{ -			$$ = strdup($1); +			$$ = $1;  		}    |  STRING	{ -			$$ = strdup($1); +			$$ = $1;  		}    ;  hci:    HCI		{ -			$$ = strdup($1); +			$$ = $1;  		}    ;  bdaddr:    BDADDR	{ -			$$ = strdup($1); +			$$ = $1;  		}    ; @@ -329,5 +331,7 @@ int read_config(char *file)  	fclose(yyin); +	yylex_destroy(); +  	return 0;  } | 
