From 3b0f0c812b7c7be2e5bdf2da0419f3751aa93757 Mon Sep 17 00:00:00 2001
From: Duncan Idaho <dune.idaho@gmail.com>
Date: Fri, 20 Apr 2012 19:51:58 +0200
Subject: [PATCH 7/7] lib/ipmi_lanp.c - ipmi_lan_set_vlan_id() clean-up
 Signed-off-by: Duncan Idaho <dune.idaho@gmail.com>

Commit changes function ipmi_lan_set_vlan_id():
* type of variable 'id' changed int -> uint8_t
* atoi() replaced by str2uchar()
* vlan id range check unified with input validation
---
 lib/ipmi_lanp.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/lib/ipmi_lanp.c b/lib/ipmi_lanp.c
index 53175bd..29bc06b 100644
--- a/lib/ipmi_lanp.c
+++ b/lib/ipmi_lanp.c
@@ -1331,16 +1331,15 @@ ipmi_lan_set_vlan_id(struct ipmi_intf * intf,  uint8_t chan, char *string)
 		data[1] = 0;
 	}
 	else {
-		int id = atoi(string);
+		uint8_t id = 0;
 
-		if (id < 1 || id > 4094) {
+		if (str2uchar(string, &id) != 0 || id < 1 || id > 4094) {
+			lprintf(LOG_ERR, "Invalid vlan id: %s", string);
 			lprintf(LOG_NOTICE, "vlan id must be between 1 and 4094.");
-			return -1;
-		}
-		else {
-			data[0] = (uint8_t)id;
-			data[1] = (uint8_t)(id >> 8) | 0x80;
+			return (-1);
 		}
+		data[0] = id;
+		data[1] = (id >> 8) | 0x80;
 	}
 	rc = set_lan_param(intf, chan, IPMI_LANP_VLAN_ID, data, 2);
 	return rc;
-- 
1.7.4.4

