diff --git a/[refs] b/[refs] index dc11d82f6d66..39c0b3ade0df 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 698d070746770aaaec78ab4ffa3ab1f1d5c6abe8 +refs/heads/master: 6a050da45b5d855b48b057446847ff1542977b52 diff --git a/trunk/init/initramfs.c b/trunk/init/initramfs.c index 679d870d991b..f81cfa40a719 100644 --- a/trunk/init/initramfs.c +++ b/trunk/init/initramfs.c @@ -26,10 +26,12 @@ static void __init free(void *where) /* link hash */ +#define N_ALIGN(len) ((((len) + 1) & ~3) + 2) + static __initdata struct hash { int ino, minor, major; struct hash *next; - char *name; + char name[N_ALIGN(PATH_MAX)]; } *head[32]; static inline int hash(int major, int minor, int ino) @@ -57,7 +59,7 @@ static char __init *find_link(int major, int minor, int ino, char *name) q->ino = ino; q->minor = minor; q->major = major; - q->name = name; + strcpy(q->name, name); q->next = NULL; *p = q; return NULL; @@ -133,8 +135,6 @@ static inline void eat(unsigned n) count -= n; } -#define N_ALIGN(len) ((((len) + 1) & ~3) + 2) - static __initdata char *collected; static __initdata int remains; static __initdata char *collect;