Re: [PATCH] cpuid: Null terminate x86 CPU string.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 13 2014, Jens Axboe wrote:
> On Thu, Feb 13 2014, Sitsofe Wheeler wrote:
> > Signed-off-by: Sitsofe Wheeler <sitsofe@xxxxxxxxx>
> > ---
> >  arch/arch-x86-common.h | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/arch/arch-x86-common.h b/arch/arch-x86-common.h
> > index 179572d..26a14a8 100644
> > --- a/arch/arch-x86-common.h
> > +++ b/arch/arch-x86-common.h
> > @@ -60,6 +60,7 @@ static inline int arch_init(char *envp[])
> >  			 (unsigned int *) &str[8],
> >  			 (unsigned int *) &str[4]);
> >  
> > +	str[11] = '\0';
> >  	if (!strcmp(str, "GenuineIntel"))
> >  		tsc_reliable = arch_init_intel(level);
> >  	else if (!strcmp(str, "AuthenticAMD"))
> 
> Applied, thanks.

Oops, this one was buggy - if we want the string null terminated, there
needs to be room for 13 characters. It needs to look like this:

diff --git a/arch/arch-x86-common.h b/arch/arch-x86-common.h
index 26a14a823750..31aa79f1b573 100644
--- a/arch/arch-x86-common.h
+++ b/arch/arch-x86-common.h
@@ -54,13 +54,13 @@ static inline int arch_init_amd(unsigned int level)
 static inline int arch_init(char *envp[])
 {
 	unsigned int level;
-	char str[12];
+	char str[13];
 
 	cpuid(0, &level, (unsigned int *) &str[0],
 			 (unsigned int *) &str[8],
 			 (unsigned int *) &str[4]);
 
-	str[11] = '\0';
+	str[12] = '\0';
 	if (!strcmp(str, "GenuineIntel"))
 		tsc_reliable = arch_init_intel(level);
 	else if (!strcmp(str, "AuthenticAMD"))

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux