Sponsored Content
Full Discussion: c++ overflow problem
Top Forums Programming c++ overflow problem Post 302256213 by mshindo on Saturday 8th of November 2008 07:29:07 PM
Old 11-08-2008
c++ overflow problem

I have come accross a rather strange problem with two buffers that seem to be overriding each other.

Code:
bool killSession(const Session &session){
//Get user
	FILE* fp = fopen("conf/sessions.current", "rt");
	char line[1024]; char user[1024]; int x = 0; int leaseTime;
	printf("key: %s \n" , session.macAddress);

	while(fgets(line, 1024, fp) != NULL){
			x++;	
			int id; char addr[1024];
			sscanf(line, "%i %s %s %i", &id, addr, user, &leaseTime);
			addr[17] = '\0';
			
			printf("key: %s \naddr: %s \n", session.macAddress, addr);
			
			if(strcmp(addr, session.macAddress) != 0){
				printf("mac address found in file: %s \n", line);
				int gid =  getGroupId(user);
				char* accessType =  checkAccessType(gid);
				//modifyFirewall(accessType, session.macAddress, 0);
				break;
			}
		}
	//Finally remove session from session.current
	deleteLine("conf/sessions.current", x);
	fclose(fp);
return true;
}

gives the output:

Code:
key: 00:13:A9:A5:5D:EF 
key: 00:10 fakesessionthat michael 1999999999
 
addr: fakesessionthat 
mac address found in file: 0 fakesessionthat michael 1999999999

From that output it would seem that in the while loop that reads the session file session.macAddress is getting replaced by a part of the line variable. Have I actually managed to buffer overflow my own program.

Can someone please explain how ive gone wrong.

Thankyou

Cheers
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Printer buffer overflow

I have an Oki-Page 14ex with 4MB of RAM. Whenever I print large documents or a several small documents, I get a buffer overflow. Can anyone help? Thanks. If there is any additional information you need, please feel free to ask. Tim (3 Replies)
Discussion started by: AltatemTC
3 Replies

2. UNIX for Dummies Questions & Answers

Line overflow??

Hi everybody, I have a problem. I'm trying to ftp a file to a remote system. my shell that wrote is look for a data in a area and when it there its starting the ftp.:) At this point it works. Then it does cd $quelle ftp -n test <<EUF user anonymous test image put W* EUF and so... (12 Replies)
Discussion started by: Peterh
12 Replies

3. Programming

warning: integer overflow in expression

I have the following expression: #define GB (1024 * 1024 * 1024) #define TB (1024 * GB) #define MAX_SIZE (3 * TB) off_t current_size; And then the expression... if (current_size > MAX_SIZE) { ... (1 Reply)
Discussion started by: tantric
1 Replies

4. HP-UX

Problem with stack overflow

Hi, I get a problem with stack overflow on HP-UX, when running a C program. Pid 28737 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. The possible cause i found, was that the definition of a structure had... (0 Replies)
Discussion started by: karthikb23
0 Replies

5. Shell Programming and Scripting

How not to let field overflow ?

Hi All I ahve a basic script with a screen. Is there anyway that I can make it possible for the user not to type over the ] ie I would like the inpu to be only with the brakcets? Any suggestions welcome. :b: eg DB name: function get_fdb { while ] do tput cup 9 41 ... (1 Reply)
Discussion started by: WhitesinHolland
1 Replies

6. Ubuntu

Stack overflow i guess while insmod

I have built kernel 2.6.35 on my Ubuntu system with some specific requirement. I also built some app defined module with the same kernel. I booted up the built version and I find it did not work properly as there is some gui and other modules missing problem. But the system booted up and I did... (0 Replies)
Discussion started by: sunilsukumar4u
0 Replies

7. UNIX for Dummies Questions & Answers

perform stack overflow

Help! I have an AIX system that has a power outage. When I logged in as root and got the system up and running it all looked ok. But.....when a user tries to log in they receive the error: The perform stack has overflowed OP=2117 PC=2124 E=46 in emmcshflif icrun is finished How can I fix... (1 Reply)
Discussion started by: dlegnar
1 Replies

8. UNIX for Advanced & Expert Users

neighbor table overflow

hi folks, Do you have any idea why this error occurs ? My server is hp blade in c7000 frames running RHEL 4 update 4. # uname -a Linux xxx 3 2.6.9-55.0.12.ELsmp #1 SMP Wed Oct 17 08:15:59 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux Applications running are jboss or java applications: #... (4 Replies)
Discussion started by: linuxgeek
4 Replies
fixsub(3alleg4) 						  Allegro manual						   fixsub(3alleg4)

NAME
fixsub - Safe function to subtract fixed point numbers clamping underflow. Allegro game programming library. SYNOPSIS
#include <allegro.h> fixed fixsub(fixed x, fixed y); DESCRIPTION
Although fixed point numbers can be subtracted with the normal '-' integer operator, that doesn't provide any protection against overflow. If overflow is a problem, you should use this function instead. It is slower than using integer operators, but if an overflow occurs it will set `errno' and clamp the result, rather than just letting it wrap. Example: fixed result; /* This will put 4965 into `result'. */ result = fixsub(itofix(5000), itofix(35)); /* Sets `errno' and puts -32768 into `result'. */ result = fixsub(itofix(-31000), itofix(3000)); ASSERT(!errno); /* This will fail. */ RETURN VALUE
Returns the clamped result of subtracting `y' from `x', setting `errno' to ERANGE if there was an overflow. SEE ALSO
fixadd(3alleg4), fixmul(3alleg4), fixdiv(3alleg4) Allegro version 4.4.2 fixsub(3alleg4)
All times are GMT -4. The time now is 05:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy