[Toybox] [PATCH 07/10] mdev: Do not use strndupa().
Georgi Chorbadzhiyski
gf at unixsol.org
Wed Mar 7 16:38:59 PST 2012
strndupa() is GNU specific function. Using it prevents mdev compilation
with musl libc and with bionic libc.
Just use strndup() and free() where needed.
---
toys/mdev.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/toys/mdev.c b/toys/mdev.c
index b644408..0297809 100644
--- a/toys/mdev.c
+++ b/toys/mdev.c
@@ -95,7 +95,7 @@ static void make_device(char *path)
// Regex to match this device
case 3:
{
- char *regex = strndupa(pos, end2-pos);
+ char *regex = strndup(pos, end2-pos);
regex_t match;
regmatch_t off;
int result;
@@ -104,6 +104,7 @@ static void make_device(char *path)
xregcomp(&match, regex, REG_EXTENDED);
result=regexec(&match, device_name, 1, &off, 0);
regfree(&match);
+ free(regex);
// If not this device, skip rest of line
if (result || off.rm_so
@@ -125,7 +126,9 @@ static void make_device(char *path)
uid = strtoul(pos,&s2,10);
if (s!=s2) {
struct passwd *pass;
- pass = getpwnam(strndupa(pos, s-pos));
+ char *str = strndup(pos, s-pos);
+ pass = getpwnam(str);
+ free(str);
if (!pass) goto end_line;
uid = pass->pw_uid;
}
@@ -134,7 +137,9 @@ static void make_device(char *path)
gid = strtoul(s,&s2,10);
if (end2!=s2) {
struct group *grp;
- grp = getgrnam(strndupa(s, end2-s));
+ char *str = strndup(s, end2-s);
+ grp = getgrnam(str);
+ free(str);
if (!grp) goto end_line;
gid = grp->gr_gid;
}
--
1.7.5.1
More information about the Toybox
mailing list