* sysdeps/unix/sysv/linux/rtld-lowlevel.h

(__rtld_mrlock_initialize): Add missing closing parenthesis.
This commit is contained in:
Ulrich Drepper 2006-12-09 22:29:37 +00:00
parent 6060802811
commit 66f17705e4
6 changed files with 60 additions and 14 deletions

View File

@ -78,7 +78,7 @@ endif
gpl2lgpl := error.c error.h
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
tst-error1 tst-pselect tst-insremque
tst-error1 tst-pselect tst-insremque tst-mntent2
ifeq (no,$(cross-compiling))
tests: $(objpfx)tst-error1-mem
endif

View File

@ -98,7 +98,7 @@ initshells()
register char **sp, *cp;
register FILE *fp;
struct stat64 statb;
int flen;
size_t flen;
free(shells);
shells = NULL;
@ -114,9 +114,11 @@ initshells()
okshells[1] = _PATH_CSHELL;
return (char **) okshells;
}
if ((strings = malloc((u_int)statb.st_size + 1)) == NULL)
if (statb.st_size > ~(size_t)0 / sizeof (char *) * 3)
goto init_okshells;
shells = calloc((unsigned)statb.st_size / 3, sizeof (char *));
if ((strings = malloc(statb.st_size + 2)) == NULL)
goto init_okshells;
shells = malloc(statb.st_size / 3 * sizeof (char *));
if (shells == NULL) {
free(strings);
strings = NULL;
@ -124,11 +126,11 @@ initshells()
}
sp = shells;
cp = strings;
flen = statb.st_size;
flen = statb.st_size + 2;
while (fgets_unlocked(cp, flen - (cp - strings), fp) != NULL) {
while (*cp != '#' && *cp != '/' && *cp != '\0')
cp++;
if (*cp == '#' || *cp == '\0')
if (*cp == '#' || *cp == '\0' || cp[1] == '\0')
continue;
*sp++ = cp;
while (!isspace(*cp) && *cp != '#' && *cp != '\0')

View File

@ -1,5 +1,6 @@
/* Utilities for reading/writing fstab, mtab, etc.
Copyright (C) 1995-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1995-2000, 2001, 2002, 2003, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -278,14 +279,11 @@ __hasmntopt (const struct mntent *mnt, const char *opt)
while ((p = strstr (rest, opt)) != NULL)
{
if (p == rest
|| (p[-1] == ','
&& (p[optlen] == '\0' ||
p[optlen] == '=' ||
p[optlen] == ',')))
if ((p == rest || p[-1] == ',')
&& (p[optlen] == '\0' || p[optlen] == '=' || p[optlen] == ','))
return p;
rest = strchr (rest, ',');
rest = strchr (p, ',');
if (rest == NULL)
break;
++rest;

41
misc/tst-mntent2.c Normal file
View File

@ -0,0 +1,41 @@
#include <mntent.h>
#include <stdio.h>
#include <string.h>
int
main (void)
{
int result = 0;
struct mntent mef;
mef.mnt_fsname = strdupa ("/dev/sdf6");
mef.mnt_dir = strdupa ("/some dir");
mef.mnt_type = strdupa ("ext3");
mef.mnt_opts = strdupa ("opt1,opt2,noopt=6,rw,norw,brw");
mef.mnt_freq = 1;
mef.mnt_passno = 2;
#define TEST(opt, found) \
if (!!hasmntopt (&mef, (opt)) != (found)) \
{ \
printf ("Option %s was %sfound\n", (opt), (found) ? "not " : ""); \
result = 1; \
}
TEST ("opt1", 1)
TEST ("opt2", 1)
TEST ("noopt", 1)
TEST ("rw", 1)
TEST ("norw", 1)
TEST ("brw", 1)
TEST ("opt", 0)
TEST ("oopt", 0)
TEST ("w", 0)
TEST ("r", 0)
TEST ("br", 0)
TEST ("nor", 0)
TEST ("or", 0)
return result;
}

View File

@ -1,3 +1,8 @@
2006-12-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/rtld-lowlevel.h
(__rtld_mrlock_initialize): Add missing closing parenthesis.
2006-10-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use

View File

@ -43,7 +43,7 @@ typedef int __rtld_mrlock_t;
#define _RTLD_MRLOCK_INITIALIZER 0
#define __rtld_mrlock_initialize(NAME) \
(void) ((NAME) = 0
(void) ((NAME) = 0)
#define __rtld_mrlock_lock(lock) \