hmm .. that lseeks call is very wrong.. try doing same with ltrace..
Dave.
On Wed, 10 Sep 2003, Voytek Eymont wrote:
> ** Reply to note from Vic <[EMAIL PROTECTED]> Wed, 10 Sep 2003 17:50:00
>
>
> > as root, strace passwd voytek, see how far it ges before segfaulting..
> >
> > it won't work as a normal user as passwd is setuid..
>
> hmmm, I just tried with what the passwd tool called 'bad, too short' , AND, *it
> worked*.
>
>
> # passwd voytek
> Changing password for user voytek.
> New password:
> BAD PASSWORD: it is too short
> Retype new password:
> passwd: all authentication tokens updated successfully.
>
>
> # passwd voytek
> Changing password for user voytek.
> New password:
> (data fseek failed): Invalid argument
> Segmentation fault
>
> last 24 lines
>
> ----
> read(5, "", 4096) = 0
> getuid32() = 0
> open("/etc/passwd", O_RDONLY) = 6
> fcntl64(6, F_GETFD) = 0
> fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
> fstat64(6, {st_mode=S_IFREG|0644, st_size=4526, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40
> 021000
> read(6, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 4096
> close(6) = 0
> munmap(0x40021000, 4096) = 0
> _llseek(4, 20480, [20480], SEEK_SET) = 0
> read(4, "g\6\0\36h\6\0gh\6\0\255h\6\0\3i\6\0Ji\6\0\226i\6\0\362"..., 4096) = 409
> 6
> fstat64(3, {st_mode=S_IFREG|0600, st_size=828083, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40
> 021000
> _llseek(3, 18446744072216379392, 0xbfff8040, SEEK_SET) = -1 EINVAL (Invalid argu
> ment)
> write(2, "(data fseek failed): Invalid arg"..., 38(data fseek failed): Invalid a
> rgument
> ) = 38
> --- SIGSEGV (Segmentation fault) ---
> +++ killed by SIGSEGV +++
> [EMAIL PROTECTED] root]#
>
>
> Voytek Eymont
>
--
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / [EMAIL PROTECTED]
pam_smb / Linux DECstation / Linux VAX / ILUG person
--
SLUG - Sydney Linux User's Group - http://slug.org.au/
More Info: http://lists.slug.org.au/listinfo/slug