mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-23 22:05:06 +02:00
upstream: don't try to use timespeccmp(3) directly as a qsort(3)
comparison function - it returns 0/1 and not the -1/0/1 that qsort expectes. fixes sftp "ls -ltr" under some circumstances. Based on patch by Masahiro Matsuya via bz3248. OpenBSD-Commit-ID: 65b5e9f18bb0d10573868c3516de6e5170adb163
This commit is contained in:
parent
599df78f30
commit
64ddd0fe68
7
sftp.c
7
sftp.c
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: sftp.c,v 1.205 2020/12/04 02:41:10 djm Exp $ */
|
/* $OpenBSD: sftp.c,v 1.206 2021/01/08 02:44:14 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
|
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
|
||||||
*
|
*
|
||||||
@ -891,7 +891,10 @@ sglob_comp(const void *aa, const void *bb)
|
|||||||
return (rmul * strcmp(ap, bp));
|
return (rmul * strcmp(ap, bp));
|
||||||
else if (sort_flag & LS_TIME_SORT) {
|
else if (sort_flag & LS_TIME_SORT) {
|
||||||
#if defined(HAVE_STRUCT_STAT_ST_MTIM)
|
#if defined(HAVE_STRUCT_STAT_ST_MTIM)
|
||||||
return (rmul * timespeccmp(&as->st_mtim, &bs->st_mtim, <));
|
if (timespeccmp(&as->st_mtim, &bs->st_mtim, ==))
|
||||||
|
return 0;
|
||||||
|
return timespeccmp(&as->st_mtim, &bs->st_mtim, <) ?
|
||||||
|
rmul : -rmul;
|
||||||
#elif defined(HAVE_STRUCT_STAT_ST_MTIME)
|
#elif defined(HAVE_STRUCT_STAT_ST_MTIME)
|
||||||
return (rmul * NCMP(as->st_mtime, bs->st_mtime));
|
return (rmul * NCMP(as->st_mtime, bs->st_mtime));
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user