Hi,
I have got the kvm.c from QNX CVS. There seems to be a possible bug in
kvm_read() function.
On my machine kvm_read() opens ‘/proc/98317/as’ file and seeks to the given
offset. After that, the following code is executed.
while (len)
{
if ((r = read(fd, data, len)) == -1)
{
fd = -1;
return -1;
}
len -= r;
data += r;
}
On my machine (QNX RTP 6) due to some reasons, the read() function reads
zero bytes (r=0)and does not return -1 (no error). Due to this, the above
loop becomes an infinite loop as long as read() keeps reading zero bytes.
Isn’t it a bug that the possibility of zero bytes being read is not
considered?
I would also like to know why read() is reading zero bytes on my machine? On
some other machines, the exact same code works perfectly. Any ideas?
Thanks in advance…
-Farooque
Farooque Khan <farooquek@concretioindia.com> wrote:
Hi,
Answered in a couple of other conferences.
-David
I have got the kvm.c from QNX CVS. There seems to be a possible bug in
kvm_read() function.
On my machine kvm_read() opens ‘/proc/98317/as’ file and seeks to the given
offset. After that, the following code is executed.
while (len)
{
if ((r = read(fd, data, len)) == -1)
{
fd = -1;
return -1;
}
len -= r;
data += r;
}
On my machine (QNX RTP 6) due to some reasons, the read() function reads
zero bytes (r=0)and does not return -1 (no error). Due to this, the above
loop becomes an infinite loop as long as read() keeps reading zero bytes.
Isn’t it a bug that the possibility of zero bytes being read is not
considered?
I would also like to know why read() is reading zero bytes on my machine? On
some other machines, the exact same code works perfectly. Any ideas?
Thanks in advance…
-Farooque
–
QNX Training Services
http://www.qnx.com/support/training/
Please followup in this newsgroup if you have further questions.