[Open-scap] [PATCH 6/9] Added implementation of vasprintf
Marshall Miller
mmiller at tresys.com
Mon May 2 14:15:33 UTC 2011
> -----Original Message-----
> From: Steve Grubb [mailto:sgrubb at redhat.com]
> Sent: Monday, May 02, 2011 8:47 AM
>
> On Friday, April 29, 2011 05:20:57 PM Marshall Miller wrote:
> > vasprintf is not implemented on Solaris, so added it.
>
> New files should have a comment at the top with copyright, license, and
> author. We need
> this to make sure all files are under the right license and we know who
> the author is.
>
> Thanks,
> -Steve
Sorry for this deficiency. I will be sure to address this and any other problems when your team has reviewed and commented on the rest of the patches.
Marshall
>
>
> > ---
> > configure.ac | 5 +++++
> > src/OVAL/probes/SEAP/Makefile.am | 2 ++
> > src/OVAL/probes/SEAP/sexp-manip.c | 1 +
> > src/OVAL/probes/SEAP/vasprintf.c | 31
> +++++++++++++++++++++++++++++++
> > src/OVAL/probes/SEAP/vasprintf.h | 14 ++++++++++++++
> > 5 files changed, 53 insertions(+), 0 deletions(-)
> > create mode 100644 src/OVAL/probes/SEAP/vasprintf.c
> > create mode 100644 src/OVAL/probes/SEAP/vasprintf.h
> >
> > diff --git a/configure.ac b/configure.ac
> > index 915bb01..76005e6 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -56,6 +56,11 @@ CFLAGS_DEBUGGING="-fno-inline-functions -O0 -g3"
> > CFLAGS_NODEBUG="-DNDEBUG"
> >
> > #
> > +# vasprintf
> > +#
> > +AC_CHECK_FUNCS([vasprintf])
> > +
> > +#
> > # posix_memalign
> > #
> > AC_CHECK_FUNCS([posix_memalign memalign])
> > diff --git a/src/OVAL/probes/SEAP/Makefile.am
> > b/src/OVAL/probes/SEAP/Makefile.am index 74decd9..28ca81d 100644
> > --- a/src/OVAL/probes/SEAP/Makefile.am
> > +++ b/src/OVAL/probes/SEAP/Makefile.am
> > @@ -76,6 +76,8 @@ libseap_la_SOURCES= generic/bfind.c \
> > public/seap-error.h \
> > public/sexp-datatype.h \
> > public/strbuf.h \
> > + vasprintf.h \
> > + vasprintf.c \
> > _sexp-rawptr.h
> >
> > libseap_la_CFLAGS= @pthread_cflags@ -DUSE_XMALLOC -DXMALLOC_EXIT
> > -DWANT_BASE64 -I$(top_srcdir) -I$(top_srcdir)/src -I.
> > -I$(top_srcdir)/src/OVAL/probes/SEAP/public -DSEAP_THREAD_SAFE
> > -DSEAP_MSGID_BITS=32 diff --git a/src/OVAL/probes/SEAP/sexp-manip.c
> > b/src/OVAL/probes/SEAP/sexp-manip.c index 1a3e603..2afc02d 100644
> > --- a/src/OVAL/probes/SEAP/sexp-manip.c
> > +++ b/src/OVAL/probes/SEAP/sexp-manip.c
> > @@ -45,6 +45,7 @@
> > #include "_sexp-rawptr.h"
> > #include "public/sexp-manip.h"
> > #include "public/sexp-manip_r.h"
> > +#include "vasprintf.h"
> >
> > static void SEXP_free_lmemb (SEXP_t *s_exp);
> >
> > diff --git a/src/OVAL/probes/SEAP/vasprintf.c
> > b/src/OVAL/probes/SEAP/vasprintf.c new file mode 100644
> > index 0000000..c4dd698
> > --- /dev/null
> > +++ b/src/OVAL/probes/SEAP/vasprintf.c
> > @@ -0,0 +1,31 @@
> > +#include "config.h"
> > +#if !defined(HAVE_VASPRINTF)
> > +
> > +#include <stdio.h>
> > +#include <stdarg.h>
> > +#include <stdlib.h>
> > +#include "vasprintf.h"
> > +
> > +int vasprintf(char **strp, const char *fmt, va_list ap) {
> > + va_list ap2;
> > + char tmpchar[1];
> > + char *newstr;
> > + int s;
> > +
> > + va_copy(ap2, ap);
> > + s = vsnprintf(tmpchar, 1, fmt, ap);
> > +
> > + newstr = malloc(s+1);
> > + if (newstr == NULL) {
> > + va_end(ap2);
> > + return (-1);
> > + }
> > + s = vsnprintf(newstr, s+1, fmt, ap2);
> > + va_end(ap2);
> > +
> > + *strp = newstr;
> > + return (s);
> > +}
> > +
> > +#endif
> > +
> > diff --git a/src/OVAL/probes/SEAP/vasprintf.h
> > b/src/OVAL/probes/SEAP/vasprintf.h new file mode 100644
> > index 0000000..05ca6fc
> > --- /dev/null
> > +++ b/src/OVAL/probes/SEAP/vasprintf.h
> > @@ -0,0 +1,14 @@
> > +#ifndef _VASPRINTF_H
> > +#define _VASPRINTF_H
> > +
> > +#include "config.h"
> > +#if !defined(HAVE_VASPRINTF)
> > +
> > +#include <stdarg.h>
> > +
> > +int vasprintf(char **strp, const char *fmt, va_list ap);
> > +
> > +#endif
> > +
> > +#endif
> > +
More information about the Open-scap-list
mailing list