From 5b97e00438b094db608f350732f7e4d426c50999 Mon Sep 17 00:00:00 2001 From: Charles Lindsay Date: Mon, 20 Jan 2014 21:02:37 -0800 Subject: [PATCH] Use Sscanf instead of regexp Docker-DCO-1.1-Signed-off-by: Charles Lindsay (github: chazomaticus) --- utils/utils.go | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/utils/utils.go b/utils/utils.go index e5757ae36..0f05a2427 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -609,28 +609,22 @@ func GetKernelVersion() (*KernelVersionInfo, error) { func ParseRelease(release string) (*KernelVersionInfo, error) { var ( - parts [3]int - err error + kernel, major, minor, parsed int + err error ) - re := regexp.MustCompile(`^([0-9]+)\.([0-9]+)\.([0-9]+)`) - subs := re.FindStringSubmatch(release) - - if len(subs) < 4 { + parsed, err = fmt.Sscanf(release, "%d.%d.%d", &kernel, &major, &minor) + if err != nil { + return nil, err + } + if parsed < 3 { return nil, errors.New("Can't parse kernel version " + release) } - for i := 0; i < 3; i++ { - parts[i], err = strconv.Atoi(subs[i+1]) - if err != nil { - return nil, err - } - } - return &KernelVersionInfo{ - Kernel: parts[0], - Major: parts[1], - Minor: parts[2], + Kernel: kernel, + Major: major, + Minor: minor, }, nil }