Cannot access memory at address 0x8


 
Thread Tools Search this Thread
Top Forums Programming Cannot access memory at address 0x8
# 1  
Old 07-04-2008
Cannot access memory at address 0x8

Hi All
I have a structure pointer and setting that pointer as NULL. When i tried to access the elements in the structure i am getting the error message.
"Cannot access memory at address 0x8". This i tried in LINUX.
When the same program is tried thro UNIX (HP-UX), i am not getting the message instead the null value "\0" is printed.

Can any of you tell me why it is so and if possible what is the necessary action that needs to be taken in LInux to avoid that error message.
I have the following program



Code:
#include<stdio.h>
#include<stdlib.h>
struct IMS
{
char *ptr;
int j;
};
typedef struct IMS IMS_FILE;

int main()
{
IMS_FILE *ims_fp;
ims_fp=(struct IMS *)malloc(sizeof(struct IMS));
free(ims_fp);
ims_fp=NULL;
IMS_feof(ims_fp);
}
int IMS_feof( register IMS_FILE *ims_fp)
{
        printf("HAI\n");
}

REgards
RAJ
# 2  
Old 07-04-2008
I tried your code on my linux box , but i didn't get the error message you said above
# 3  
Old 07-04-2008
mika is right -- the code you posted runs fine. What did you really do?
Quote:
I have a structure pointer and setting that pointer as NULL. When i tried to access the elements in the structure
Are you really trying to dereference a null pointer?
# 4  
Old 07-07-2008
Hi All
I have missed one line.
printf("%d",ims_fp->j);

I tried to acess one of the elements of the structure and then it gave the problem.

You may replace the function IMS_feof with the below

int IMS_feof( register IMS_FILE *ims_fp)
{
printf("%d",ims_fp->j);
printf("HAI\n");
}

REgards
rajrk
# 5  
Old 07-07-2008
You are dereferencing a null pointer:
Code:
ims_fp=NULL;
...
printf("%d",ims_fp->j);

According to the language definition, the behaviour is undefined if you do this, so that's why you have different behaviour on different platforms.
In order to make your code run correctly, you need to either remove the lines
Code:
free(ims_fp);
ims_fp=NULL;

or remove the function call
Code:
IMS_feof(ims_fp);

# 6  
Old 07-07-2008
I understood what you said, but it works in HP-UX. As the value in the members are filled with 0's, while in Linux (64 bit)

uname -a
Linux optiplex64 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 26 14:14:47 EDT 2007 x86_64

it is not working.

One more point is that in another linux box (32 bit )
<lnx22:~>$ uname -a
Linux 2.4.21-37.ELsmp #1 SMP Wed Sep 7 13:28:55 EDT 2005 i686 i686 i386 GNU/Linux

it works.

So ... i am looking for a suitable solution where the same code should work in both in LInux and HP-UX.

Regards
rkraj
# 7  
Old 07-07-2008
Working/not working depends on implementation of kernel.
Basically how particular kernel deals with memory.
Sometimes it might allow you to read whatever your want, or might not.

For example in case of DOS you call is always valid, becuase iterrupts vector area is located in that area.

At the same time it's big security flaw if any procees is allowed to read any piece of memory. It might be a way to easily obtaint passwords, decription keys, etc. That's one of the reasosn, why you have such exception.

Your program is wrong regardless if it's HP-UX or Linux. It does that you didn't intend to do. You must rewrtie in order to avoid defrefencing of tha null-pointer.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to write a value to a physical memory address in bash script?

How would I write a value to a physical memory address? I was able to read a physical memory address (for example, 0x400) using this line: dd if=/dev/mem count=4 bs=1 skip=$(( 0x400 )) But I get an error: dd: 'standard input': cannot skip to specified offset when I try to write using... (1 Reply)
Discussion started by: rabrandt
1 Replies

2. Post Here to Contact Site Administrators and Moderators

Register Here to Permit RSS Access by IP Address

Hello Everyone, We now (only) permit access to our RSS news feed access based on IP address. This means that if you have a website or application that using our site RSS feeds, you can still do it; but your must register you site in this thread. So please reply with your IP address of your... (9 Replies)
Discussion started by: Neo
9 Replies

3. What is on Your Mind?

Plan to Restrict RSS Access by IP Address

Hello Everyone, We plan to restrict all RSS news feed access soon based on IP address. This means that if you have a website or application that using our site RSS feeds, you can still do it; but your must register you site in this thread. So please reply with your IP address of your server... (7 Replies)
Discussion started by: Neo
7 Replies

4. Solaris

Restrict XWindows Server Access by IP Address

We want to disable graphical logins on our Solaris 10(64bit sparc )boxes, but I haven't found any information on how to do it via google. Most likely I am using the wrong search terms (i've been looking for "xdmcp" and "x11" "disable") . While looking through the output of "svcs -a | grep... (3 Replies)
Discussion started by: the.gooch
3 Replies

5. Cybersecurity

How to access private IP address?

HI, I'm doing a research on client/server connection. I need to run the server code to open socket connection with the client code. To make the test real, I need to run the server code from a a machine far away from the client over the Internet. IN ORDER TO RUN THE CODE, the client has to know the... (3 Replies)
Discussion started by: ENG_MOHD
3 Replies

6. Linux

Block RSH access by IP address

Hi All i need to use RSH ( i can hear you all banging your head against a wall ) but i want to block a certain IP address from access my machine via RSH, is there way to do this thanks A (3 Replies)
Discussion started by: ab52
3 Replies

7. Solaris

Error: Memory Address Not aligned

Hi, The following error message occured when I was trying to reboot my SUN machine: Memory address not aligned Its a Sun 280 R , Ultra SPARC III What should I do. Varma (3 Replies)
Discussion started by: gunnervarma
3 Replies

8. UNIX for Advanced & Expert Users

Can kernel process access user address space ?

Can kernel process access user address space ? (2 Replies)
Discussion started by: subhotech
2 Replies

9. Programming

how to round up a memory address(memory alignment problem)

Hi, I try to marshal a unsigned int and a char * into a buffer, and then unmarshal them later to get them out. I need to put the char * in the front and unsigned int at the end of the buffer. However, my system always give me "BUS ERROR". I am using Sun Sparcs Sloris 2.10. My code to marshal... (6 Replies)
Discussion started by: nj302
6 Replies

10. UNIX for Dummies Questions & Answers

Restricting access to a machine by IP Address

I have a need to allow only certain IP addresses to access a machine running solaris 9. I am not sure how this can be accomplished. Thanks in advance for your help. Patch (2 Replies)
Discussion started by: patch
2 Replies
Login or Register to Ask a Question