libarchive: Define _XOPEN_SOURCE for get(pwu|grg)id_r
The commit "Fixed a few of the SunOS build errors in libarchive" changed the call to these functions to use the old signatures. Instead we now define _XOPEN_SOURCE to get the improved modern signatures.
This commit is contained in:
parent
a9a4814971
commit
fe598550aa
|
@ -23,6 +23,10 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
# define _XOPEN_SOURCE 500 /* getpwuid_r and getgrgid_r signatures */
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "archive_platform.h"
|
#include "archive_platform.h"
|
||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD$");
|
||||||
|
|
||||||
|
@ -186,7 +190,7 @@ static const char *
|
||||||
lookup_uname_helper(struct name_cache *cache, id_t id)
|
lookup_uname_helper(struct name_cache *cache, id_t id)
|
||||||
{
|
{
|
||||||
struct passwd pwent, *result;
|
struct passwd pwent, *result;
|
||||||
int r = 0;
|
int r;
|
||||||
|
|
||||||
if (cache->buff_size == 0) {
|
if (cache->buff_size == 0) {
|
||||||
cache->buff_size = 256;
|
cache->buff_size = 256;
|
||||||
|
@ -195,12 +199,8 @@ lookup_uname_helper(struct name_cache *cache, id_t id)
|
||||||
if (cache->buff == NULL)
|
if (cache->buff == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
#if defined(__sun)
|
|
||||||
result = getpwuid_r((uid_t)id, &pwent, cache->buff, cache->buff_size);
|
|
||||||
#else
|
|
||||||
r = getpwuid_r((uid_t)id, &pwent,
|
r = getpwuid_r((uid_t)id, &pwent,
|
||||||
cache->buff, cache->buff_size, &result);
|
cache->buff, cache->buff_size, &result);
|
||||||
#endif
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
break;
|
break;
|
||||||
if (r != ERANGE)
|
if (r != ERANGE)
|
||||||
|
@ -238,7 +238,7 @@ static const char *
|
||||||
lookup_gname_helper(struct name_cache *cache, id_t id)
|
lookup_gname_helper(struct name_cache *cache, id_t id)
|
||||||
{
|
{
|
||||||
struct group grent, *result;
|
struct group grent, *result;
|
||||||
int r = 0;
|
int r;
|
||||||
|
|
||||||
if (cache->buff_size == 0) {
|
if (cache->buff_size == 0) {
|
||||||
cache->buff_size = 256;
|
cache->buff_size = 256;
|
||||||
|
@ -247,12 +247,8 @@ lookup_gname_helper(struct name_cache *cache, id_t id)
|
||||||
if (cache->buff == NULL)
|
if (cache->buff == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
#if defined(__sun)
|
|
||||||
result = getgrgid_r((gid_t)id, &grent, cache->buff, cache->buff_size);
|
|
||||||
#else
|
|
||||||
r = getgrgid_r((gid_t)id, &grent,
|
r = getgrgid_r((gid_t)id, &grent,
|
||||||
cache->buff, cache->buff_size, &result);
|
cache->buff, cache->buff_size, &result);
|
||||||
#endif
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
break;
|
break;
|
||||||
if (r != ERANGE)
|
if (r != ERANGE)
|
||||||
|
|
|
@ -23,6 +23,10 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
# define _XOPEN_SOURCE 500 /* getpwuid_r and getgrgid_r signatures */
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "archive_platform.h"
|
#include "archive_platform.h"
|
||||||
__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.4 2007/05/29 01:00:19 kientzle Exp $");
|
__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.4 2007/05/29 01:00:19 kientzle Exp $");
|
||||||
|
|
||||||
|
@ -122,14 +126,10 @@ lookup_gid(void *private_data, const char *gname, gid_t gid)
|
||||||
size_t bufsize = 128;
|
size_t bufsize = 128;
|
||||||
char *buffer = _buffer;
|
char *buffer = _buffer;
|
||||||
struct group grent, *result;
|
struct group grent, *result;
|
||||||
int r = 0;
|
int r;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
#if defined(__sun)
|
|
||||||
result = getgrnam_r(gname, &grent, buffer, bufsize);
|
|
||||||
#else
|
|
||||||
r = getgrnam_r(gname, &grent, buffer, bufsize, &result);
|
r = getgrnam_r(gname, &grent, buffer, bufsize, &result);
|
||||||
#endif
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
break;
|
break;
|
||||||
if (r != ERANGE)
|
if (r != ERANGE)
|
||||||
|
@ -185,14 +185,10 @@ lookup_uid(void *private_data, const char *uname, uid_t uid)
|
||||||
size_t bufsize = 128;
|
size_t bufsize = 128;
|
||||||
char *buffer = _buffer;
|
char *buffer = _buffer;
|
||||||
struct passwd pwent, *result;
|
struct passwd pwent, *result;
|
||||||
int r = 0;
|
int r;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
#if defined(__sun)
|
|
||||||
result = getpwnam_r(uname, &pwent, buffer, bufsize);
|
|
||||||
#else
|
|
||||||
r = getpwnam_r(uname, &pwent, buffer, bufsize, &result);
|
r = getpwnam_r(uname, &pwent, buffer, bufsize, &result);
|
||||||
#endif
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
break;
|
break;
|
||||||
if (r != ERANGE)
|
if (r != ERANGE)
|
||||||
|
|
Loading…
Reference in New Issue