>>> On 19.07.15 at 11:33, <o...@aepfle.de> wrote:
> blktap2 fails to build with gcc5 because it fails to recognize that
> there can be just one active connection (enforced in ctl_accept).
> 
> Rearrange the code to handle just a single connection.
> Adjust two strerror calls to use errno instead -1 as input.
> 
> [  198s] block-log.c: In function 'ctl_close_sock':
> [  198s] block-log.c:363:23: error: array subscript is above array bounds 
> [-Werror=array-bounds]
> [  198s]      if (s->connections[i].fd == fd) {
> [  198s]                        ^
> [  198s] block-log.c: In function 'ctl_request':
> [  198s] block-log.c:549:23: error: array subscript is above array bounds 
> [-Werror=array-bounds]
> [  198s]      if (s->connections[i].id == id)
> [  198s]                        ^

So what makes the compiler right with that complaint? I.e. how does
it know i > 0 here? After all - afaict - s->connected can only be 0 or
1, and hence either the loop bodies don't get entered at all or the
loops have only a single iteration. Smells like a compiler bug instead,
which I'm not sure we want to work around with a non-trivial patch
like this.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to