C :: Preventing A Buffer Overflow When Strings Being Passed As Arguments

Sep 21, 2013

preventing a buffer overflow when dealing with strings being passed as arguments.

If I have a function prototype such as:

Code:

void foobar(char *bar);

That argument bar - is intended to take a pointer to a buffer of x characters in length. Inside that function, I can't get the size of that buffer, as bar is now just a pointer to a char. I COULD just make the user of this function pass a length parameter, but there is no guarantee that would be correct. Is there a bullet proof way of detecting that the user has provided a buffer that is too small?

View 11 Replies


ADVERTISEMENT

C :: Using Small Buffer With Sprintf Causes Overflow?

Jan 3, 2014

Code:
char buffer1[10];
char buffer2[10] = "something";
sprintf(buffer1, "with %s", buffer2);

In a statement like the one above, is there a threat/leak or does it only truncate the string that is loaded into buffer1?

View 5 Replies View Related

C++ :: Constructor That Initializes A New Inventory Object With Values Passed As Arguments

Feb 23, 2014

Write a constructor that initializes a new inventory object with the values passed as arguments, but which also includes a reasonable default value for each parameter.

#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
#include <string.h>
class inventory {

[Code] ....

I am not trying to get my homewotk done, just to understand my errors. It complies without problem. But doesn't run.

View 2 Replies View Related

C++ :: Returning Values Or Using Pointers To Redefine Variables Passed As Arguments?

Feb 28, 2014

Which is more efficient in functions? Returning values or using pointers to redefine variables passed as arguments?

I mean either using:

void ptr_Func(int *x)
{
*x = *x+1
}

or

int ptr_Func(int x)
{
return x + 1;
}

In terms of speed, memory use etc.I want to know general efficiency, I know it will obviously vary with different uses and circumstances.

View 7 Replies View Related

C++ :: Display Fraction In Proper From Based On 2 Arguments Passed To Class Member Function

Mar 15, 2015

We're assigned a project working with classes and fractions. My goal is to display a fraction in proper from based on 2 arguments passed to a class member function proper();

My strategy was to utilize the greatest common factor between the 2 arguements, then divide both the numerator and denominator by that number and then it would display.

The program actually runs, but only seems to divide the numerator and not the denominator. This in return makes my other class member functions have incorrect comparisons and sums.

Code:
#include<iostream>
#include<conio.h>
class Fraction {
friend void compare(Fraction a, Fraction b);
friend void sum(Fraction a, Fraction b);

[Code] ....

View 14 Replies View Related

C++ :: Strings Always Require Extra Memory Buffer?

Dec 24, 2014

I am trying to add some functionality to this project: [URL] ...

Under this [URL] ...

This latest comment based on;

host.data = (u_char *) "112.168.231.19:80";
for (i = 0; i < peer->name.len; i++) {
peer->name.data[i] = host.data[i];
}
or more simpler:
peer->name.data = host.data;

States: "Because strings always require an extra memory buffer (and the burden of memory management) while primitive values like booleans and numbers don't."

Which makes sense since a boolean change (down/up) does actually changes a runtime value, however the string replacement shows via '/upstreams' that the value has changed but at runtime it is still using the old value.

So in short it looks like I do need a buffer to change the string value.

My question is why? if 'peer->down' works on a memory fragment where its value resides then why doesn't a 'peer->name.data = host.data' do the same thing? can this be done without a buffer? once you allocate memory and store host.data in to this where do I copy it to?

View 5 Replies View Related

C++ :: Object That Is Passed To Function Is Changed Although No Pointer Is Passed

Mar 22, 2013

I am posting this simplified piece of code that is a bit confusing for me. There are two functions that I call. One shows the expected results but the result of the other one rather puzzles me.

//#define defineVecTyp Vec3f
#define defineVecTyp float
template <typename vecTyp>
vecTyp buildLaplacianPyramid(cv::Mat inputmat) {
vecTyp lapPyr;

[Code].....

Calling the function sum1 does not change the values stored in the variables val1 and val2. The output of the program is as follows:

val1= 1 ## val2= 10 // before the call of function sum1
val1= 1 ## val2= 10 // after the call of function sum1
sumOfVals= 22

This is quite obvious and as expected and I just pasted this piece of code as an example for better clarification.

However, if I call the function buildLaplacianPyramid and apply a function for Gaussian Blurring, this also effects the cv::Mat passed to the function. The line imshow("M1, after buildLaplacianPyramid",M1); therefore shows an image that is blurred. Since I am not passing a pointer to the cv::Mat I do not understand why this should be happening. I was assuming that there would be a copy of the cv::Mat M1 to be used within the function. Therefore I was expecting the cv::Mat M1 to retain its original value. I was expecting that all changes applied to cv::Mat inputmat within the function would not have any influence on the cv::Mat M1. Just like in my other example with the sum.

View 3 Replies View Related

C++ :: Preventing Execution Of A Function

Jun 26, 2013

PHP Code:

class MyClass{};namespace BI{    class BusinessInterop {    
public:        static MyClass* func( {
printf("BusinessInterop");return new MyClass();}    

[Code] .....

I would like to know how to prevent the program print out "Business", I'd like it to call the base class's static function. I have tried to changed MyClass* into void* but it still prints Business :grumpy:.

My challenge is to output "BusinessInterop" without any changes made to the polymorphic structure as designed.

View 7 Replies View Related

C++ :: Preventing The User From Feeding (Cin) Unexpected Values

May 2, 2013

I'm just starting c++, doing tutorials. So many tutorials. I've noticed that the tutorials all assume the same thing: That the user will always do exactly as he/she is told when asked for input.

Example: "Please enter your age:"

Now, the example code might be expecting the user to type some numbers, but what if the user feels like typing out the letters of their age?

"I am ninety five thank you very much, sonny"

I could specify to the user that I only want the information in number form, but what if the user is just being a dick?

What if the user types, "none o' yer business."?

So... how to approach "fool-proofing" player input?

View 2 Replies View Related

C/C++ :: How To Deal With Overflow

May 24, 2014

I was just wondering how to deal with overflow. My code works for exponential when i put small numbers in like 2 and 3. So it would do 2^3 which would be 8. But if i try something like 2^44 then I just get 0.

View 2 Replies View Related

C++ :: How To Check What Causes A Stack Overflow

Sep 22, 2013

I'm getting a stack overflow error because for large numbers, this code I'm working on allocates too much on the stack.

Is there a way of tracking stack allocations specifically?

Will multithreading solve my problem if each thread is doing the static allocations?

Would I really have to use malloc or new every time I wanted to use memory just to make my code scale to huge numbers?

View 11 Replies View Related

C :: Bit Checking - Stack Overflow

Sep 19, 2013

I usually check if a bit is set using:

Code: bit = (number >> n) & 1; where `n` is the bit I want to check...

But I came across a stackoverflow answer saying:

bit = number & (1 << x); will not put the value of bit x into bit unless bit has type _Bool (<stdbool.h>).

Otherwise, bit = !!(number & (1 << x)); will..

So why is this? why the double !?

View 5 Replies View Related

C++ :: Runtime Stack Overflow

Jun 5, 2013

Here is my error message: Warning1warning C4717: 'getx' : recursive on all control paths, function will cause runtime stack overflow

and here is my code I will Bold the part that is giving me problems!

class point
{
public:
point();

[Code]....

View 5 Replies View Related

C :: Overflow Example And Order Of Memory Allocation

Jul 11, 2013

Small code to show overflow...But when I compile and run - buffer_one is not being overwritten when the byte size of buffer_two overflows .

Code:

#include <stdio.h>#include <string.h>
int main(int argc, char *argv[]) {
int value = 5;
char buffer_one[8], buffer_two[8];
strcpy(buffer_two, "two"); //Put "one" into buffer_one
strcpy(buffer_one, "one"); //Put "two" into buffer_two
}

[code]....

View 3 Replies View Related

C++ :: Overflow / Underflow Detecting Functions

Sep 15, 2014

I am performing arithmetic operations on very large integers that operate around the threshold of the maximum positive integer an int variable can handle (i.e. 2147483647) for a 32-bit machine. I have been studying the in-built functions in the C++ Standard Library for some time now where I came across some error detecting functions in the <cmath> and <cerrno> header files. The impression I got from the literature is that they are solely used in conjunction with functions contained in the <cmath> header file and not necessarily with fundamental arithmetic operations like addition and subtraction.

I need a means to know when my arithmetic operations generate overflows/underflows! Is there any way I can adapt the functionalities of these functions to my needs?

View 5 Replies View Related

C++ :: Expecting Stack Overflow Error?

Jun 9, 2013

After not programming for sometimes I decided to program a small application. But I have some trouble according to what I remember and re-checking arrays online. I don't understand how the code I wrote below is possible, shouldn't give a stack overflow error or something to that extent? Instead it gives me the value of 3.

#include "stdafx.h"
#include<iostream>
int _tmain(int argc, _TCHAR* argv[]) {
int arr2 [2];
arr2 [3] = 3;

[Code] ....

View 1 Replies View Related

C :: Stack Overflow - Expected Expression Error

Sep 10, 2013

I'm pretty new to C, and keep getting an error. Basically I'm trying to convert a ppm image to all red. Here is my code that I can't get to work:

Code:
change(pixel_t *PIXEL, &w, &h,pixel_t *buffer);

And here is the beginning of my convert function:

Code:
void change(pixel_t *pixel, int w, int h, pixel_t *buffer) {

int average, sum;
int i;
pixel_t *pointer;

Everything else works fine. I keep getting an error when I call the convert function. It says "expected expression before pixel_t" and "too few arguments to function "change". I know that everything else in the main is working.

View 3 Replies View Related

C++ :: Insert Function In Binary Tree - Stack Overflow Error

Mar 26, 2013

I am trying to implement the insert function of a binary tree. Atm when I try and insert 3 nodes, the program breaks and gives me a stack overflow error. The error points to a getter function for an identifier for the data in my node class.

void LinkedList::add(Product *myProduct) {
if (_length==0) {
_head = new Node(NULL, NULL, myProduct);
_end = _head;
_length=1;

[Code] ....

Here is my insert function, the error message is

"An unhandled exception of type 'System.NullReferenceException' occurred in SDI2.exe
Additional information: Object reference not set to an instance of an object. "

In my main I have declared an instance of product, "productToAdd = new Product(id,idPrice);" so I'm a bit confused as to what I need to include..

View 3 Replies View Related

C++ :: Floating Point Error - Overflow (abnormal Program Termination)

Apr 22, 2012

Why I have a

HTML Code:

FLOATING POINT ERROR: OVERFLOW
ABNORMAL PROGRAM TERMINATION

in the code below?

Code:
#include<stdio.h>
#include <math.h>
#include<conio.h>
#define A 0
#define B 1
float F(float x0, float y0) {
return (0.2*x0)+(y0*y0);

[Code] .....

View 7 Replies View Related

C++ :: Floating Point Error - Overflow / Abnormal Program Termination

May 8, 2012

What is wrong with this code? I keep getting

HTML Code:
FLOATING POINT ERROR: OVERFLOW
ABNORMAL PROGRAM TERMINATION

Code:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream.h>
#define N 4
float x[5]={0, 1, 2, 3, 4};
float y[5]={0.5, 2, 7.5, 20, 42.5};

[Code] ....

View 2 Replies View Related

C :: Integers Are Not Passed Through Functions

Nov 12, 2013

I am trying to create a program that reads my file filled with random words, it then compares the words after they are put into a 2d array and sees if there is any matching words.. unfortunately the count is not working for me (in function2 and function3) and I am not sure why..

Code:

#include<stdio.h>
#include<string.h>
char function1(char words_array[][17]);
int function2(char words_array[][17]);
void function3(int pairs, char words_array[][17]);
int main( void )
{ char words_array[20][17];
int x = 0;

[Code]...

View 6 Replies View Related

C/C++ :: Pointers Passed Through Functions

Dec 14, 2014

I am writing a code that creates a deck of cards using a doubly linked list. One function, newDeck(), is made to create a new deck if the user wants. I don't have any problems creating the deck and it all seems to work fine, but when I run the whole program and a separate function needs to utilize the nodes in my deck, I get an error. Trying to find where there was a problem, I tried displaying the values of a card node in random parts of my code. At the end of the newDeck function, after the whole deck has been created, the card still displays correctly, yet when I return back to main immediately after newDeck has been called, I noticed that the values of my cards changed to either random values or they became null. I found this strange because in between the end of my newDeck function and at this point, there is no extra code so it doesn't seem as if there is any way the pointers could have been changed. Maybe It's because I don't have a complete understanding of pointers yet but is there any way that pointers can change values when returning from a function to main?

newDeck(head, tail, n); //this is how I call the function from main.
void newDeck(Card* head, Card* tail, Card* n) //this is my function body
{
for (int i = 0; i < 4; i++)
{

[Code]....

View 2 Replies View Related

C++ :: Program That Can Draw Total Of Passed Value

Feb 4, 2014

Draw the total of a passed value, or value in general, without checking how many values there are individually.

Here's a pseudo-example:

int aliens = 10; // This should be changed as desired.
void drawaliens(int value) {
aliens.draw(value); // Instead of having a test of how many to draw, draw the amount there is from one check
}

I want to draw the amount of aliens passed or called to the alien draw function.

However, I don't want the function to check every possible value of aliens which could be passed before drawing, and just check the value once and draw that value.

IF x ALIENS, DRAW x ALIENS instead of...

IF 1 ALIEN, DRAW ALIEN(1);
IF 2 ALIEN, DRAW ALIEN(2);
IF 3 ALIEN, DRAW ALIEN(3);
.... and so on.

If there can be hundreds of aliens, it seems impractical to check every single possible value before drawing, and just check the value and draw that value.

View 2 Replies View Related

C++ :: Sorting Out Passed And Failed Students

Apr 12, 2014

So here I have a program that is supposed to basically sort out who passed and failed. I am currently stuck on the switch statement, I'm trying to count how many students received an A, B, C, etc.

Here's what I have so far:

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
void printIdInfo(ofstream &fout);
void printColumnHeaders(ofstream &fout);

[Code] ....

View 1 Replies View Related

C++ :: Vector Get Passed To A Thread By Value Instead Of By Reference

Aug 25, 2013

I have a function :

void UpdateNotefications(vector <string> &Notefic)

Where I change a vector...

I called it with a thread :

thread t1 (UpdateNotefications, Notefic);
t1.detach();

Though I see that inside the func, Notefic has a val, and outside, it is still empty (after the function is over)...

View 6 Replies View Related

C++ :: Function Passed By Pointers Or Reference?

Sep 28, 2014

I am going to read some codes about image processing and I need to understand functions like this one below?

BOOL Trans_Geo_Affine(CImage *pImgSrc, CImage *pImgDst, BOOL bMatrix,
BOOL bHvInversed, double fScale_xx, double fFlex_xy, double fSkew_yx,
double fRotate_yy, double fTx, double fTy, int nInterpolation, BOOL bResize, BYTE cFill)

[URL]

two parameters, CImage *pImgSrc and CImage *pImgDst. I think they are class pointers and the function is passed by reference. What should I learn to understand this function and its parameters? How should I use this function? how to use the function with two parameters CImage *pImgSrc and CImage *pImgDst.

View 11 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved