Fix the definition for PCPU_NAME_LEN, which is intended to fit

("CPU %d", cpuid) where cpuid <= MAXCPU.

1. sizeof(__XSTRING(MAXCPU) + 1) is a typo: typeof(__XSTRING(...) + 1)
   is 'char *', so sizeof() will return the size of the pointer, not
   the size of the string contents. The proper expression should be
   'sizeof(__XSTRING(MAXCPU)) + 1'.

2. One should not add one, but substract it: sizeof() accounts for the
   trailing '\0' and we have two sizeof's, so the size of one '\0'
   should be substracted -- this will give the maximal string buffer
   length for CPU with its number, no less, no more.

Submitted by:	rea
This commit is contained in:
marius 2011-07-09 18:47:51 +00:00
parent 17591f511a
commit c7a02e807c

View File

@ -146,7 +146,7 @@ struct rm_queue {
struct rm_queue* volatile rmq_prev;
};
#define PCPU_NAME_LEN (sizeof("CPU ") + sizeof(__XSTRING(MAXCPU) + 1))
#define PCPU_NAME_LEN (sizeof("CPU ") + sizeof(__XSTRING(MAXCPU)) - 1)
/*
* This structure maps out the global data that needs to be kept on a