]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Write_rules(): Avoid stack corruption if using extremely long udev pathname
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 1 Nov 2011 03:56:12 +0000 (14:56 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 1 Nov 2011 03:56:12 +0000 (14:56 +1100)
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
policy.c

index 111428682acfcabaee6378592c6b8b3993a15901..cd260c6970ae0d9f38337297d3395223847c1806 100644 (file)
--- a/policy.c
+++ b/policy.c
@@ -883,7 +883,8 @@ int Write_rules(char *rule_name)
        char udev_rule_file[PATH_MAX];
 
        if (rule_name) {
-              strcpy(udev_rule_file, rule_name);
+              strncpy(udev_rule_file, rule_name, sizeof(udev_rule_file) - 6);
+              udev_rule_file[sizeof(udev_rule_file) - 6] = '\0';
               strcat(udev_rule_file, ".temp");
                fd = creat(udev_rule_file,
                           S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);