
On Fri, Jan 11, 2013 at 02:06:05PM -0700, Eric Blake wrote:
On 01/11/2013 11:15 AM, Eduardo Habkost wrote:
Extract the code that's specific for the "node" -numa option type (the only one, today) to a separate function.
The extracted code will eventually become a function specific for a "numa-node" config section, independent from the numa_add() code.
+ if (get_param_value(option, 128, "nodeid", optarg) == 0) { + nodenr = nb_numa_nodes; + } else { + nodenr = strtoull(option, NULL, 10); }
strtoull() needs additional error checking after the fact, to make sure I didn't pass an empty string, trailing garbage, or so many digits I triggered overflow.
+ if (get_param_value(option, 128, "cpus", optarg) != 0) { + value = strtoull(option, &endptr, 10); + if (*endptr == '-') { + endvalue = strtoull(endptr+1, &endptr, 10); } else { - nodenr = strtoull(option, NULL, 10); + endvalue = value; }
More uses of strtoull() that aren't guarding against all possible errors.
All this code gets replaced in patch 09/10. The only remaining strtoull() call gets error-checking at patch 06/10. -- Eduardo