diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-28 13:30:18 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-03-28 13:30:18 +0200 |
commit | 1b41d15a99dfcddb99975d17cfbcd61d8870a887 (patch) | |
tree | 24a000624b3de8074281f84d0bf49b5900db6ae3 | |
parent | fb24e4e28bad0b0e2bb670deb9fb56223be49ada (diff) |
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.
-rw-r--r-- | common/quic.c | 6 |
1 files changed, 3 insertions, 3 deletions
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); |