[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v3 02/10] lib/nolibc: Add strndup and strdup functions
Reviewed-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx> Costin Lupu <costin.lupu@xxxxxxxxx> writes: > Port strdup function from Mini-OS. > > Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> > --- > lib/nolibc/exportsyms.uk | 2 ++ > lib/nolibc/include/string.h | 2 ++ > lib/nolibc/string.c | 22 ++++++++++++++++++++++ > 3 files changed, 26 insertions(+) > > diff --git a/lib/nolibc/exportsyms.uk b/lib/nolibc/exportsyms.uk > index 6492581..61d49c7 100644 > --- a/lib/nolibc/exportsyms.uk > +++ b/lib/nolibc/exportsyms.uk > @@ -62,6 +62,8 @@ strcmp > strcspn > strspn > strtok > +strndup > +strdup > > # time > nanosleep > diff --git a/lib/nolibc/include/string.h b/lib/nolibc/include/string.h > index 1d63ae9..b21e2c1 100644 > --- a/lib/nolibc/include/string.h > +++ b/lib/nolibc/include/string.h > @@ -61,6 +61,8 @@ int strcmp(const char *str1, const char *str2); > size_t strcspn(const char *s, const char *c); > size_t strspn(const char *s, const char *c); > char *strtok(char *restrict s, const char *restrict sep); > +char *strndup(const char *str, size_t len); > +char *strdup(const char *str); > > #ifdef __cplusplus > } > diff --git a/lib/nolibc/string.c b/lib/nolibc/string.c > index d4a6469..6f853ba 100644 > --- a/lib/nolibc/string.c > +++ b/lib/nolibc/string.c > @@ -57,6 +57,7 @@ > * ---------------------------------------------------------------------- > */ > > +#include <stdlib.h> > #include <stdint.h> > #include <string.h> > #include <limits.h> > @@ -264,3 +265,24 @@ char *strtok(char *restrict s, const char *restrict sep) > p = 0; > return s; > } > + > +char *strndup(const char *str, size_t len) > +{ > + char *__res; > + int __len; > + > + __len = strnlen(str, len); > + > + __res = malloc(__len + 1); > + if (__res) { > + memcpy(__res, str, __len); > + __res[__len] = '\0'; > + } > + > + return __res; > +} > + > +char *strdup(const char *str) > +{ > + return strndup(str, SIZE_MAX); > +} > -- > 2.11.0 > -- Yuri Volchkov Software Specialist NEC Europe Ltd Kurfürsten-Anlage 36 D-69115 Heidelberg _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |