Possible bug in kvm_read()

bridged with qdn.public.qnxrtp.porting
Post Reply
Farooque Khan

Possible bug in kvm_read()

Post by Farooque Khan » Thu May 30, 2002 4:21 am

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

David Gibbs

Re: Possible bug in kvm_read()

Post by David Gibbs » Thu May 30, 2002 3:48 pm

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.

Post Reply

Return to “qdn.public.qnxrtp.porting”