From 8f0498208db67786d4a60982c0e9ae42e8ebd26b Mon Sep 17 00:00:00 2001 From: rilysh Date: Tue, 26 Dec 2023 09:24:04 -0700 Subject: [PATCH] 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 Reviewed by: imp, zlei Pull Request: https://github.com/freebsd/freebsd-src/pull/945 --- usr.sbin/bhyve/audio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/audio.c b/usr.sbin/bhyve/audio.c index fc9ded37044..4613f358311 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);