diff options
author | ru <ru@FreeBSD.org> | 2005-02-27 14:05:38 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2005-02-27 14:05:38 +0000 |
commit | 7157282f847f08c71e73df9c546ddec5e518b835 (patch) | |
tree | bbcc3085b95c959316c3b25189421253309cce07 /usr.bin | |
parent | 1c7f944f0e271432ba8c77237e5d32c251eff7d3 (diff) | |
download | FreeBSD-src-7157282f847f08c71e73df9c546ddec5e518b835.zip FreeBSD-src-7157282f847f08c71e73df9c546ddec5e518b835.tar.gz |
Zero out the entire "struct __collate_st_chain_pri", or garbage
appears in LC_COLLATE files (due to alignment). An alternative
would be to bump STR_LEN to 16.
(This is in preparation to make LC_COLLATE files architecture
independent.)
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/colldef/parse.y | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/usr.bin/colldef/parse.y b/usr.bin/colldef/parse.y index c35ea7e..a7e312f 100644 --- a/usr.bin/colldef/parse.y +++ b/usr.bin/colldef/parse.y @@ -118,10 +118,8 @@ order : ORDER order_list { if ((__collate_chain_pri_table = realloc(__collate_chain_pri_table, sizeof(*__collate_chain_pri_table) * (chain_index + 1))) == NULL) yyerror("can't grow chain table"); - (void)memset(__collate_chain_pri_table[chain_index].str, 0, - sizeof(__collate_chain_pri_table[0].str)); - __collate_chain_pri_table[chain_index].prim = 0; - __collate_chain_pri_table[chain_index].sec = 0; + (void)memset(&__collate_chain_pri_table[chain_index], 0, + sizeof(__collate_chain_pri_table[0])); chain_index++; if ((fp = fopen(out_file, "w")) == NULL) @@ -194,11 +192,10 @@ item : CHAR { if ((__collate_chain_pri_table = realloc(__collate_chain_pri_table, sizeof(*__collate_chain_pri_table) * (chain_index + 1))) == NULL) yyerror("can't grow chain table"); - (void)memset(__collate_chain_pri_table[chain_index].str, 0, - sizeof(__collate_chain_pri_table[0].str)); + (void)memset(&__collate_chain_pri_table[chain_index], 0, + sizeof(__collate_chain_pri_table[0])); (void)strcpy(__collate_chain_pri_table[chain_index].str, curr_chain); __collate_chain_pri_table[chain_index].prim = prim_pri++; - __collate_chain_pri_table[chain_index].sec = 0; chain_index++; } | CHAR RANGE CHAR { @@ -249,11 +246,10 @@ prim_sub_item : CHAR { if ((__collate_chain_pri_table = realloc(__collate_chain_pri_table, sizeof(*__collate_chain_pri_table) * (chain_index + 1))) == NULL) yyerror("can't grow chain table"); - (void)memset(__collate_chain_pri_table[chain_index].str, 0, - sizeof(__collate_chain_pri_table[0].str)); + (void)memset(&__collate_chain_pri_table[chain_index], 0, + sizeof(__collate_chain_pri_table[0])); (void)strcpy(__collate_chain_pri_table[chain_index].str, curr_chain); __collate_chain_pri_table[chain_index].prim = prim_pri; - __collate_chain_pri_table[chain_index].sec = 0; chain_index++; } ; @@ -281,8 +277,8 @@ sec_sub_item : CHAR { if ((__collate_chain_pri_table = realloc(__collate_chain_pri_table, sizeof(*__collate_chain_pri_table) * (chain_index + 1))) == NULL) yyerror("can't grow chain table"); - (void)memset(__collate_chain_pri_table[chain_index].str, 0, - sizeof(__collate_chain_pri_table[0].str)); + (void)memset(&__collate_chain_pri_table[chain_index], 0, + sizeof(__collate_chain_pri_table[0])); (void)strcpy(__collate_chain_pri_table[chain_index].str, curr_chain); __collate_chain_pri_table[chain_index].prim = prim_pri; __collate_chain_pri_table[chain_index].sec = sec_pri++; |