aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrilysh <nightquick@proton.me>2023-12-26 16:24:04 +0000
committerWarner Losh <imp@FreeBSD.org>2023-12-26 16:36:31 +0000
commit8f0498208db67786d4a60982c0e9ae42e8ebd26b (patch)
tree71647168907a546f3e6af89852d6f38196522ad5
parent2aa186b3b08bcf6e49b743329b2fa00897a1235f (diff)
downloadsrc-8f0498208db67786d4a60982c0e9ae42e8ebd26b.tar.gz
src-8f0498208db67786d4a60982c0e9ae42e8ebd26b.zip
bhyve/audio.c: avoid re-calculating the length of dev_name
In the function audio_init(), strlen() is being called two times, first to get the length of dev_name and second to use in memcpy(). Creating a local variable and keeping the length avoids this re-calculation. Signed-off-by: rilysh <nightquick@proton.me> Reviewed by: imp, zlei Pull Request: https://github.com/freebsd/freebsd-src/pull/945
-rw-r--r--usr.sbin/bhyve/audio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/bhyve/audio.c b/usr.sbin/bhyve/audio.c
index fc9ded37044a..4613f3583116 100644
--- a/usr.sbin/bhyve/audio.c
+++ b/usr.sbin/bhyve/audio.c
@@ -80,6 +80,7 @@ audio_init(const char *dev_name, uint8_t dir)
#endif
};
#endif
+ size_t nlen;
assert(dev_name);
@@ -87,8 +88,9 @@ audio_init(const char *dev_name, uint8_t dir)
if (!aud)
return NULL;
- if (strlen(dev_name) < sizeof(aud->dev_name))
- memcpy(aud->dev_name, dev_name, strlen(dev_name) + 1);
+ nlen = strlen(dev_name);
+ if (nlen < sizeof(aud->dev_name))
+ memcpy(aud->dev_name, dev_name, nlen + 1);
else {
DPRINTF("dev_name too big");
free(aud);