aboutsummaryrefslogtreecommitdiff
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-13 15:25:27 +0000
commite49d3eb40324eaffaa13b93f2c4173dfa04dfa34 (patch)
treed70d6f6b60852f44545c37c824866cc1cb7e7a1f /lib/libdevdctl
parent8cca7b7f28feaf0c5e2dfedb985ae334a4013ef6 (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);