[ovs-dev] [PATCH 3/3] datapath: Check device name length more carefully in create_dp().
Ben Pfaff
blp at nicira.com
Tue Apr 27 17:45:58 UTC 2010
I don't see any value in silently truncating device names. Doing so will
sow confusion in userspace. This commit makes too-long device names
return ENAMETOOLONG.
---
datapath/datapath.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/datapath/datapath.c b/datapath/datapath.c
index e9590f7..4f74795 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -202,10 +202,14 @@ static int create_dp(int dp_idx, const char __user *devnamep)
int i;
if (devnamep) {
- err = -EFAULT;
- if (strncpy_from_user(devname, devnamep, IFNAMSIZ) < 0)
+ int retval = strncpy_from_user(devname, devnamep, IFNAMSIZ);
+ if (retval < 0) {
+ err = -EFAULT;
goto err;
- devname[IFNAMSIZ - 1] = '\0';
+ } else if (retval >= IFNAMSIZ) {
+ err = -ENAMETOOLONG;
+ goto err;
+ }
} else {
snprintf(devname, sizeof devname, "of%d", dp_idx);
}
--
1.6.6.1
More information about the dev
mailing list