1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

* 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 gpl2lgpl := error.c error.h
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ 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)) ifeq (no,$(cross-compiling))
tests: $(objpfx)tst-error1-mem tests: $(objpfx)tst-error1-mem
endif endif

View File

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

View File

@ -1,5 +1,6 @@
/* Utilities for reading/writing fstab, mtab, etc. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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) while ((p = strstr (rest, opt)) != NULL)
{ {
if (p == rest if ((p == rest || p[-1] == ',')
|| (p[-1] == ',' && (p[optlen] == '\0' || p[optlen] == '=' || p[optlen] == ','))
&& (p[optlen] == '\0' ||
p[optlen] == '=' ||
p[optlen] == ',')))
return p; return p;
rest = strchr (rest, ','); rest = strchr (p, ',');
if (rest == NULL) if (rest == NULL)
break; break;
++rest; ++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> 2006-10-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use * 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_INITIALIZER 0
#define __rtld_mrlock_initialize(NAME) \ #define __rtld_mrlock_initialize(NAME) \
(void) ((NAME) = 0 (void) ((NAME) = 0)
#define __rtld_mrlock_lock(lock) \ #define __rtld_mrlock_lock(lock) \