bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: c-ctype, inttostr, intprops module license


From: Paul Eggert
Subject: Re: c-ctype, inttostr, intprops module license
Date: Fri, 17 Nov 2006 00:03:55 -0800
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

Bruno Haible <address@hidden> writes:

> - argp: Either decide that argp should be GPL, or rework the 2006-01-21
>   patch to lib/argp-namefrob.h so that it doesn't use dirname any more,

argp-namefrob.h doesn't use dirname if you define
GNULIB_ARGP_DISABLE_DIRNAME or GNULIB_ARGP_EXTERN_BASENAME.  Perhaps
the LGPL users can do one or the other?  We could then remove dirname
from the Depends-on.  It's a bit of a hack, but it'd work.  Or if they
need a third possibility we could add that.

> - euidaccess: change group-member.c so that it doesn't use xmalloc. If the
>   memory allocation fails, let group_member() return -1 with errno = ENOMEM.

This sounds like trouble.  The only client of group_member is
euidaccess, and euidaccess is supposed to return a binary value
(access OK, or access denied), not a trinary one (access OK, or access
denied, or memory exhausted).  I expect that changing that would break
a lot of code unless we rewrote it.

How about following your suggestion, except that the code calls
abort() if memory allocation fails?

A simpler possibility would be to declare euidaccess to be GPL, at
least for now.  Would anyone mind?

> - inline: Likewise, should be changed to LGPL.

Yes.  I did that just now.

> - obstack: If someone was to use/assign the obstack_exit_failure variable
>   declared in obstack.h, he will get a link error. So I propose to move
>   the "#define obstack_exit_failure exit_failure" from obstack.c to
>   obstack.h. Then we can remove the dependency to exitfail.

That would be fine, license wise.  I don't quite follow the technical
details but I imagine you have done that, so it sounds good.

> - getaddrinfo, inttostr: Paul, can you agree to put intprops under LGPL?

I'd rather not.  How about if we use something like the following
patch instead?

2006-11-16  Paul Eggert  <address@hidden>

        * modules/getaddinfo (Depends-on): Remove inttostr; add snprintf.
        * lib/getaddrinfo.c: Include snprintf.h rather than intprops.h
        and inttostr.h.  Use snprintf rather than uinttostr, so that
        LGPLed code doesn't depend on GPLed.

--- modules/getaddrinfo.~1.13.~ 2006-10-22 23:03:01.000000000 -0700
+++ modules/getaddrinfo 2006-11-17 00:00:01.000000000 -0800
@@ -10,7 +10,7 @@ m4/getaddrinfo.m4
 Depends-on:
 gettext-h
 inet_ntop
-inttostr
+snprintf
 socklen
 stdbool
 strdup
--- lib/getaddrinfo.c.~1.19.~   2006-10-29 13:52:55.000000000 -0800
+++ lib/getaddrinfo.c   2006-11-16 23:57:21.000000000 -0800
@@ -38,8 +38,7 @@
 #define N_(String) String
 
 #include "inet_ntop.h"
-#include "intprops.h"
-#include "inttostr.h"
+#include "snprintf.h"
 #include "strdup.h"
 
 /* BeOS has AF_INET, but not PF_INET.  */
@@ -408,11 +407,8 @@ int getnameinfo(const struct sockaddr *r
        {
          unsigned short int port
            = ntohs (((const struct sockaddr_in *) sa)->sin_port);
-         char buf[INT_BUFSIZE_BOUND (port)];
-         char const *s = uinttostr (port, buf);
-         if (strlen (s) + 1 > servicelen)
+         if (servicelen <= snprintf (service, servicelen, "%u", port))
            return EAI_OVERFLOW;
-         memcpy (service, s, strlen (s) + 1);
        }
        break;
       }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]