summaryrefslogtreecommitdiffstats
path: root/usr.bin/colldef
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-02-27 14:05:38 +0000
committerru <ru@FreeBSD.org>2005-02-27 14:05:38 +0000
commit7157282f847f08c71e73df9c546ddec5e518b835 (patch)
treebbcc3085b95c959316c3b25189421253309cce07 /usr.bin/colldef
parent1c7f944f0e271432ba8c77237e5d32c251eff7d3 (diff)
downloadFreeBSD-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/colldef')
-rw-r--r--usr.bin/colldef/parse.y20
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++;
OpenPOWER on IntegriCloud