CVE-2014-3479.patch 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. Subject: The cdf_check_stream_offset function in relies on incorrect sector-size
  2. ID: CVE-2014-3479
  3. Author: Christos Zoulas <christos@zoulas.com>
  4. Date: Wed Jun 4 17:26:07 2014 +0000
  5. Origin:
  6. commit 36fadd29849b8087af9f4586f89dbf74ea45be67
  7. Debian-Author: Holger Levsen <holger@debian.org>
  8. Reviewed-By: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
  9. Last-Update: 2014-09-07
  10. Use the proper sector size when checking stream offsets (Francisco Alonso and
  11. Jan Kaluza at RedHat)
  12. --- a/src/cdf.c
  13. +++ b/src/cdf.c
  14. @@ -267,13 +267,15 @@
  15. {
  16. const char *b = (const char *)sst->sst_tab;
  17. const char *e = ((const char *)p) + tail;
  18. + size_t ss = sst->sst_dirlen < h->h_min_size_standard_stream ?
  19. + CDF_SHORT_SEC_SIZE(h) : CDF_SEC_SIZE(h);
  20. (void)&line;
  21. - if (e >= b && (size_t)(e - b) < CDF_SEC_SIZE(h) * sst->sst_len)
  22. + if (e >= b && (size_t)(e - b) < ss * sst->sst_len)
  23. return 0;
  24. DPRINTF(("%d: offset begin %p end %p %" SIZE_T_FORMAT "u"
  25. " >= %" SIZE_T_FORMAT "u [%" SIZE_T_FORMAT "u %"
  26. SIZE_T_FORMAT "u]\n", line, b, e, (size_t)(e - b),
  27. - CDF_SEC_SIZE(h) * sst->sst_len, CDF_SEC_SIZE(h), sst->sst_len));
  28. + ss * sst->sst_len, ss, sst->sst_len));
  29. errno = EFTYPE;
  30. return -1;
  31. }