Mesa (master): util/u_format: Assert that format block size is at least 1 byte.

Vinson Lee vlee at kemper.freedesktop.org
Tue Oct 1 04:59:25 UTC 2013


Module: Mesa
Branch: master
Commit: ac82495d6d562091d819b0109adf43fd89e49537
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac82495d6d562091d819b0109adf43fd89e49537

Author: Vinson Lee <vlee at freedesktop.org>
Date:   Fri Sep 27 22:42:58 2013 -0700

util/u_format: Assert that format block size is at least 1 byte.

The block size for all formats is currently at least 1 byte. Add an
assertion for this.

This should silence several Coverity "Division or modulo by zero"
defects.

Signed-off-by: Vinson Lee <vlee at freedesktop.org>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/util/u_format.h |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h
index 28527f5..84f16d5 100644
--- a/src/gallium/auxiliary/util/u_format.h
+++ b/src/gallium/auxiliary/util/u_format.h
@@ -716,10 +716,15 @@ static INLINE uint
 util_format_get_blocksize(enum pipe_format format)
 {
    uint bits = util_format_get_blocksizebits(format);
+   uint bytes = bits / 8;
 
    assert(bits % 8 == 0);
+   assert(bytes > 0);
+   if (bytes == 0) {
+      bytes = 1;
+   }
 
-   return bits / 8;
+   return bytes;
 }
 
 static INLINE uint




More information about the mesa-commit mailing list