lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 29 Jun 2016 10:43:55 +0200
From:	Andreas Schwab <schwab@...e.de>
To:	Yury Norov <ynorov@...iumnetworks.com>
Cc:	<libc-alpha@...rceware.org>, <linux-kernel@...r.kernel.org>,
	<arnd@...db.de>, <catalin.marinas@....com>,
	<marcus.shawcroft@....com>, <philb@....org>, <davem@...emloft.net>,
	<szabolcs.nagy@....com>, <maxim.kuvyrkov@...aro.org>,
	<joseph@...esourcery.com>, <pinskia@...il.com>,
	<bamvor.zhangjian@...wei.com>, <fweimer@...hat.com>,
	<Prasun.Kapoor@...ium.com>, <cmetcalf@...lanox.com>,
	<hjl.tools@...il.com>, <adhemerval.zanella@...aro.org>,
	Andrew Pinski <apinski@...ium.com>
Subject: Re: [PATCH 16/23] [AARCH64] Make lp64 and ilp32 directories.

Yury Norov <ynorov@...iumnetworks.com> writes:

> diff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c
> new file mode 100644
> index 0000000..1183f49
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c
> @@ -0,0 +1,77 @@
> +/* Copyright (C) 2007-2015 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
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library.  If not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <dirent.h>
> +#include <stddef.h>
> +#include <stdint.h>
> +#include <string.h>
> +#include <unistd.h>
> +#include <sys/types.h>
> +#include <bits/wordsize.h>
> +
> +#include <sysdep.h>
> +#include <sys/syscall.h>
> +#include <linux/posix_types.h>
> +
> +struct kernel_dirent64
> +  {
> +    uint64_t		d_ino;
> +    int64_t		d_off;
> +    unsigned short int	d_reclen;
> +    unsigned char	d_type;
> +    char		d_name[256];
> +  };
> +
> +static size_t conv (char *buf, size_t nbytes)
> +{
> +    char *end = buf + nbytes;
> +    struct dirent *u = (struct dirent *) buf;
> +    struct kernel_dirent64 *k = (struct kernel_dirent64 *) buf;
> +    size_t sizd = offsetof(struct kernel_dirent64, d_name)
> +	  - offsetof(struct dirent, d_name);
> +
> +    while ((char*) k < end)
> +    {
> +      struct kernel_dirent64 *nk = (char *) k + k->d_reclen;
> +      size_t name_len = k->d_reclen - offsetof(struct kernel_dirent64, d_name);
> +
> +      u->d_ino = k->d_ino;
> +      u->d_off = k->d_off;
> +      u->d_reclen = k->d_reclen - sizd;
> +      u->d_type = k->d_type;
> +      memcpy (u->d_name, k->d_name, name_len);
> +
> +      u = (char *) u + u->d_reclen;
> +      k = nk;
> +}

../sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c: In function 'conv':
../sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c:49:36: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
       struct kernel_dirent64 *nk = (char *) k + k->d_reclen;
                                    ^
../sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c:58:9: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
       u = (char *) u + u->d_reclen;
         ^

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@...e.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ