aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/colldef
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2005-02-27 14:05:38 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2005-02-27 14:05:38 +0000
commit923d9b010997748889e5cfaa16b0f7b41ec52067 (patch)
treebbcc3085b95c959316c3b25189421253309cce07 /usr.bin/colldef
parent503c19a2dc8ffc64ba3aa3e7cbbb7f76fce9b2ef (diff)
downloadsrc-923d9b010997748889e5cfaa16b0f7b41ec52067.tar.gz
src-923d9b010997748889e5cfaa16b0f7b41ec52067.zip
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.)
Notes
Notes: svn path=/head/; revision=142649
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 c35ea7ee2c75..a7e312fa1ab5 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++;