0002-pure_strcmp-len-s2-can-be-len-s1.patch 1009 B

123456789101112131415161718192021222324252627282930
  1. From 36c6d268cb190282a2c17106acfd31863121b58e Mon Sep 17 00:00:00 2001
  2. From: Frank Denis <github@pureftpd.org>
  3. Date: Mon, 24 Feb 2020 15:19:43 +0100
  4. Subject: [PATCH] pure_strcmp(): len(s2) can be > len(s1)
  5. Reported by Antonio Morales from GitHub Security Labs, thanks!
  6. [Retrieved from:
  7. https://github.com/jedisct1/pure-ftpd/commit/36c6d268cb190282a2c17106acfd31863121b]
  8. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  9. ---
  10. src/utils.c | 8 +++++++-
  11. 1 file changed, 7 insertions(+), 1 deletion(-)
  12. diff --git a/src/utils.c b/src/utils.c
  13. index f41492d..a7f0381 100644
  14. --- a/src/utils.c
  15. +++ b/src/utils.c
  16. @@ -45,5 +45,11 @@ int pure_memcmp(const void * const b1_, const void * const b2_, size_t len)
  17. int pure_strcmp(const char * const s1, const char * const s2)
  18. {
  19. - return pure_memcmp(s1, s2, strlen(s1) + 1U);
  20. + const size_t s1_len = strlen(s1);
  21. + const size_t s2_len = strlen(s2);
  22. +
  23. + if (s1_len != s2_len) {
  24. + return -1;
  25. + }
  26. + return pure_memcmp(s1, s2, s1_len);
  27. }