datapath: Always null-terminate network device name in create_dp().
authorBen Pfaff <blp@nicira.com>
Tue, 27 Apr 2010 17:43:24 +0000 (10:43 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 27 Apr 2010 17:43:24 +0000 (10:43 -0700)
commit092a872d6e8009ef547dc66274936dc879c55419
treeefda3284c6057be140d52ebea5581f2c6a85b891
parent1224e8fc1da9cddef6bdb24814300893bb2ace89
datapath: Always null-terminate network device name in create_dp().

strncpy() does not null-terminate its output buffer if the source string's
length is at least as large as its 'count' argument.  We know that the
source and destination buffers are the same size and that the source buffer
is null-terminated, so just use strcpy().

This fixes a kernel BUG message that often occurred when strlen(devname)
was exactly IFNAMSIZ-1.  In such a case, if
internal_dev_port.devname[IFNAMSIZ-1] happened to be nonzero, it would
eventually fail the following check in alloc_netdev_mq():
BUG_ON(strlen(name) >= sizeof(dev->name));

Bug #2722.
datapath/datapath.c