summaryrefslogtreecommitdiff
path: root/lib/libdevdctl
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-04-13 15:19:10 +0000
committerAlexander Motin <mav@FreeBSD.org>2021-04-27 12:47:39 +0000
commit2f2a081e5c9d1418c44b8b26501d9d34e357fca7 (patch)
treec76c268fa22008a199f277f79faf0b79d36c891f /lib/libdevdctl
parent7bed7043e216119a0c9c261f4cbd93d5cd6b0944 (diff)
Diffstat (limited to 'lib/libdevdctl')
-rw-r--r--lib/libdevdctl/event.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libdevdctl/event.cc b/lib/libdevdctl/event.cc
index 36c9b725fed1..76ef1896975a 100644
--- a/lib/libdevdctl/event.cc
+++ b/lib/libdevdctl/event.cc
@@ -277,6 +277,7 @@ Event::GetTimestamp() const
bool
Event::DevPath(std::string &path) const
{
+ char buf[SPECNAMELEN + 1];
string devName;
if (!DevName(devName))
@@ -288,7 +289,11 @@ Event::DevPath(std::string &path) const
return (false);
/* Normalize the device name in case the DEVFS event is for a link. */
- devName = fdevname(devFd);
+ if (fdevname_r(devFd, buf, sizeof(buf)) == NULL) {
+ close(devFd);
+ return (false);
+ }
+ devName = buf;
path = _PATH_DEV + devName;
close(devFd);