[Spice-commits] common/quic.c

Marc-André Lureau elmarco at kemper.freedesktop.org
Wed Mar 28 05:02:54 PDT 2012


 common/quic.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 1b41d15a99dfcddb99975d17cfbcd61d8870a887
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Mar 28 13:30:18 2012 +0200

    Fix harmless warnings in quic_encode()
    
    The quic code has been changed recently this way:
    
    -    ASSERT(encoder->usr, line);
    +    if (line == NULL) {
    +        spice_warn_if_reached();
    +        return QUIC_ERROR;
    +    }
    
    It appears that the only caller of quic_encode() gives a NULL line and
    rely on the more_lines() callback to return new lines instead.
    
    Adjust the code accordingly, adding a few more checks to verify the
    caller gives/returns correct values.

diff --git a/common/quic.c b/common/quic.c
index 27f637b..3e7c802 100644
--- a/common/quic.c
+++ b/common/quic.c
@@ -1194,7 +1194,7 @@ static void quic_image_params(Encoder *encoder, QuicImageType type, int *channel
 #define FILL_LINES() {                                                  \
     if (line == lines_end) {                                            \
         int n = encoder->usr->more_lines(encoder->usr, &line);          \
-        if (n <= 0) {                                                   \
+        if (n <= 0 || line == NULL) {                                   \
             encoder->usr->error(encoder->usr, "more lines failed\n");   \
         }                                                               \
         lines_end = line + n * stride;                                  \
@@ -1238,11 +1238,11 @@ int quic_encode(QuicContext *quic, QuicImageType type, int width, int height,
     int i;
 #endif
 
-    if (line == NULL) {
+    lines_end = line + num_lines * stride;
+    if (line == NULL && lines_end != line) {
         spice_warn_if_reached();
         return QUIC_ERROR;
     }
-    lines_end = line + num_lines * stride;
 
     quic_image_params(encoder, type, &channels, &bpc);
 


More information about the Spice-commits mailing list