fwrite throws segmentation fault


 
Thread Tools Search this Thread
Top Forums Programming fwrite throws segmentation fault
# 1  
Old 08-25-2005
fwrite throws segmentation fault

Code : function sSaveTFFile
Code:
             .......................
	iRetCode = link (caCurrentFilename, caBackupFilename);
	if (iRetCode == -1)
	{
		ERR_MSG2(LOG_ALERT, "Can't move %s to %s", caCurrentFilename, caBackupFilename);
		return(FAILURE);
	}
	
	iRetCode = unlink (caCurrentFilename);
	if (iRetCode == -1)
	{
		ERR_MSG2(LOG_ALERT, "Can't move %s to %s", caCurrentFilename, caBackupFilename);
		return(FAILURE);
	}


	fpTFFile = fopen (caCurrentFilename, "wb"); 
	if (fpTFFile == NULL)
	{
		ERR_MSG1 (LOG_ALERT, "Can't open %s\n", caCurrentFilename);
		return (FAILURE);
	}

/*
the program crashes here while calling the fwrite function. 
I have verified all the parameters of fwrite. They are valid pointers.  I've also tried putting another fwrite function writing a hard coded value into a file. That function also is crashing.
I've replaced fwrite with fprintf, but still getting the same error.
*/
	if (fwrite (pCurSectData->pucData, sizeof (Uchar_t), pCurSectData->ulDataSize, fpTFFile)
		!= pCurSectData->ulDataSize)
	{
		ERR_MSG1 (LOG_ALERT, "Can't save modified TF data to %s\n", caCurrentFilename);
		return (FAILURE);
	}

             ................................

please find the snapshot of the call stack (while the crash has occurred) in the attachement


Here our function is sSaveTFFile, which calls the fwrite and it is throwing the segmentation fault.

While searching in Google Groups, I found some articles telling the reason to be memory mismanagement. Could any one figure out the exact problem?
fwrite throws segmentation fault-untitledjpg
# 2  
Old 08-25-2005
Maybe some of those ptrs point to illegal memories ...
try writing with open/write/close only and see if sigsev occur again on writing data, if so, some ptrs may be erronous Smilie
# 3  
Old 08-25-2005
Are you looping anywhere? Any segmentation faults I have faced were mainly due to accidental infinite loops.
# 4  
Old 08-26-2005
Quote:
Originally Posted by andryk
Maybe some of those ptrs point to illegal memories ...
try writing with open/write/close only and see if sigsev occur again on writing data, if so, some ptrs may be erronous Smilie
Those pointers are valid. I attempted to call fwrite with a hardcoded string. It too crashed.
If u see the attachemnt (in my prev message), the seg. fault has occured in calloc, which is being called by fwrite. So i suspect memory leak/corruption.

You got any idea abt the impact of memory issues on fwrite function?
# 5  
Old 08-26-2005
Quote:
Originally Posted by blowtorch
Are you looping anywhere? Any segmentation faults I have faced were mainly due to accidental infinite loops.

No... there are no infinite loops.
# 6  
Old 08-26-2005
It means memory allocated to the
Code:
pCurSectData->pucData

object is less than
Code:
sizeof (Uchar_t) * pCurSectData->ulDataSize

# 7  
Old 09-13-2005
The above problem has been solved. Actually memory overrun was happening in a memcpy operation. This memory overrun caused the fwrite call to crash.

I detected that culprit memcpy code by placing fwrite randomly through the program flow. Then i picked up the first fail of fwrite function. After correcting the memory overrun in the memcpy call, the program proceeds smoothly.

Thanks all.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C. To segmentation fault or not to segmentation fault, that is the question.

Oddities with gcc, 2.95.3 for the AMIGA and 4.2.1 for MY current OSX 10.14.1... I am creating a basic calculator for the AMIGA ADE *NIX emulator in C as it does not have one. Below are two very condensed snippets of which I have added the results inside the each code section. IMPORTANT!... (11 Replies)
Discussion started by: wisecracker
11 Replies

2. Homework & Coursework Questions

Segmentation Fault

this is a network programming code to run a rock paper scissors in a client and server. I completed it and it was working without any error. After I added the findWinner function to the server code it starts giving me segmentation fault. -the segmentation fault is fixed Current problem -Also... (3 Replies)
Discussion started by: femchi
3 Replies

3. Programming

Using gdb, ignore beginning segmentation fault until reproduce environment segmentation fault

I use a binary name (ie polo) it gets some parameter , so for debugging normally i do this : i wrote script for watchdog my app (polo) and check every second if it's not running then start it , the problem is , if my app , remain in state of segmentation fault for a while (ie 15 ... (6 Replies)
Discussion started by: pooyair
6 Replies

4. UNIX for Dummies Questions & Answers

Segmentation fault

#include<stdio.h> #include<malloc.h> #include<unistd.h> #include<stdlib.h> void *start_1(void *argv) { printf("thread 0x%x\n",(unsigned int)pthread_self()); pthread_exit((void*)1); } void *start_2(void *argv) { printf("thread 0x%x\n",(unsigned int)pthread_self()); return (void*)2; }... (2 Replies)
Discussion started by: vincent__tse
2 Replies

5. UNIX for Advanced & Expert Users

segmentation fault with ps

What does this mean and why is this happening? $ ps -ef | grep ocular Segmentation fault (core dumped) $ ps -ef | grep ocular Segmentation fault (core dumped) $ ps aux | grep ocular Segmentation fault (core dumped) $ ps Segmentation fault (core dumped) $ pkill okular $ ps... (1 Reply)
Discussion started by: cokedude
1 Replies

6. Programming

Segmentation fault in C

i have this code int already_there(char *client_names, char *username) { int i; for(i = 0; i<NUM; i++) { printf("HERE\n"); if (strcmp(client_names, username)==0) return(1); } return(0); } and i get a segmentation fault, whats wrong here? (7 Replies)
Discussion started by: omega666
7 Replies

7. Programming

segmentation fault in fwrite function

Hi, my code is written in proC and it is in UNIX(AIX).I have written a small code for writing data into a binary file,but while writing my program is giving core dump. Here Is my code---- fpWriteFile = fopen(WriteFileName,"wb+"); CHAR *recvgen; recvgen = (char... (7 Replies)
Discussion started by: ajaysahoo
7 Replies

8. Programming

segmentation fault

ive written my code in C for implementation of a simple lexical analyser using singly linked list hence am making use of dynamic allocation,but when run in linux it gives a segmentation fault is it cause of the malloc function that ive made use of????any suggestions as to what i could do??? thank... (8 Replies)
Discussion started by: rockgal
8 Replies

9. Programming

Hi! segmentation fault

I have written a program which takes a directory as command line arguments and displays all the dir and files in it. I don't know why I have a problem with the /etc directory.It displays all the directories and files untill it reaches a sub directory called peers which is in /etc/ppp/peers.the... (4 Replies)
Discussion started by: vijlak
4 Replies

10. UNIX for Dummies Questions & Answers

Segmentation Fault

hello all, I tried a program on an array to intialise array elements from the standard input device.it is an integer array of 5 elements.but after entering the 4th element it throws a message called "Segmentation Fault" and returns to the command prompt without asking for the 5th element. ... (3 Replies)
Discussion started by: compbug
3 Replies
Login or Register to Ask a Question