1 diff --git a/udev_rules_parse.c b/udev_rules_parse.c
2 --- a/udev_rules_parse.c
3 +++ b/udev_rules_parse.c
4 @@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule
11 /* get all the keys */
12 @@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule
14 /* grow buffer and add rule */
15 rule_size = sizeof(struct udev_rule) + rule->bufsize;
16 + padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t);
17 + dbg("add %zi padding bytes", padding);
18 + rule_size += padding;
19 + rule->bufsize += padding;
21 rules->buf = realloc(rules->buf, rules->bufsize + rule_size);
23 err("realloc failed");