qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [5532] Replace uses of strndup (a GNU extension) with Q


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [5532] Replace uses of strndup (a GNU extension) with Qemu pstrdup
Date: Sat, 1 Nov 2008 19:47:09 +0100

2008/11/1 Blue Swirl <address@hidden>:
> On 11/1/08, andrzej zaborowski <address@hidden> wrote:
>> 2008/10/25 Blue Swirl <address@hidden>:
>>
>> > Revision: 5532
>>  >          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5532
>>  > Author:   blueswir1
>>  > Date:     2008-10-25 11:23:27 +0000 (Sat, 25 Oct 2008)
>>  >
>>  > Log Message:
>>  > -----------
>>  > Replace uses of strndup (a GNU extension) with Qemu pstrdup
>>  >
>>  > Modified Paths:
>>  > --------------
>>  >    trunk/cutils.c
>>  >    trunk/hw/bt-hci.c
>>  >    trunk/qemu-common.h
>>  >
>>  > Modified: trunk/cutils.c
>>  > ===================================================================
>>  > --- trunk/cutils.c      2008-10-25 11:21:28 UTC (rev 5531)
>>  > +++ trunk/cutils.c      2008-10-25 11:23:27 UTC (rev 5532)
>>  > @@ -50,6 +50,18 @@
>>  >     return buf;
>>  >  }
>>  >
>>  > +/* strdup with a limit */
>>  > +char *pstrdup(const char *str, size_t buf_size)
>>  > +{
>>  > +    size_t len;
>>  > +    char *buf;
>>  > +
>>  > +    len = MIN(buf_size, strlen(str));
>>  > +    buf = qemu_malloc(len);
>>  > +    pstrcpy(buf, len, str);
>>  > +    return buf;
>>  > +}
>>  > +
>>  >  int strstart(const char *str, const char *val, const char **ptr)
>>  >  {
>>  >     const char *p, *q;
>>  >
>>  > Modified: trunk/hw/bt-hci.c
>>  > ===================================================================
>>  > --- trunk/hw/bt-hci.c   2008-10-25 11:21:28 UTC (rev 5531)
>>  > +++ trunk/hw/bt-hci.c   2008-10-25 11:23:27 UTC (rev 5532)
>>  > @@ -1814,7 +1814,7 @@
>>  >
>>  >         if (hci->device.lmp_name)
>>  >             free((void *) hci->device.lmp_name);
>>  > -        hci->device.lmp_name = strndup(PARAM(change_local_name, name),
>>  > +        hci->device.lmp_name = pstrdup(PARAM(change_local_name, name),
>>  >                         sizeof(PARAM(change_local_name, name)));
>>  >         bt_hci_event_complete_status(hci, HCI_SUCCESS);
>>  >         break;
>>  >
>>  > Modified: trunk/qemu-common.h
>>  > ===================================================================
>>  > --- trunk/qemu-common.h 2008-10-25 11:21:28 UTC (rev 5531)
>>  > +++ trunk/qemu-common.h 2008-10-25 11:23:27 UTC (rev 5532)
>>  > @@ -82,6 +82,7 @@
>>  >  /* cutils.c */
>>  >  void pstrcpy(char *buf, int buf_size, const char *str);
>>  >  char *pstrcat(char *buf, int buf_size, const char *s);
>>  > +char *pstrdup(const char *str, size_t buf_size);
>>  >  int strstart(const char *str, const char *val, const char **ptr);
>>  >  int stristart(const char *str, const char *val, const char **ptr);
>>  >  time_t mktimegm(struct tm *tm);
>>
>>
>> I would like to revert this and part of the following commit so I can
>>  merge the missing interface for bt and have it work.
>
> Well, strndup is still a GNU extension, so it may not be present in
> all systems. What if pstrdup was changed to match strndup, would that
> be OK?

There's still the strncpy change.

My idea was to just add strndup to osdep.c because if the semantics
are to match anyway then the rename only adds confusion.

Cheers




reply via email to

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