c calling conventions


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Programming c calling conventions
# 1  
c calling conventions

C calling convention we all know defines a way how the parameters are pushed onto the stack.
My question is when and how does this C calling conventions matters to a user?
When the user will have to bother about the calling conventions in his project?
# 2  
I think, if you do something like this
for instance:

Code:
function( t++, t);

does the 2nd parameter end up before or after the t++?
not defined I believed.
# 3  
Order of evaluation of function arguments is not defined. In fact it is a portability problem. The only thing that can be said is that the arguments will have been fully evaluated (it is a sequence point) before the arguments are passed to the called function.

BEB's example is a disaster waiting to happen.

By calling conventions do you mean _CDECL and _STDCALL? That is independant of the example given in the above post. Order of evaluation and the order arguments are pushed is not necessarily related.
This User Gave Thanks to jim mcnamara For This Post:
# 4  
There are some security issues that can also arise if a user is intimately familiar with how parameters are pushed on to the stack. Buffer overflow attacks, stack smashing, and heap smashing are all common ways to attack vulnerable code. Additionally, format string issues might allow a user to view what is on the stack. Imagine if you wrote a C program that takes user input and prints back what the user typed. Now imagine what would happen if the user typed "%x%x%x%x%x%x..." it would essentially print whats on the stack in hex format.
# 5  
thanks jim and jasondj for the replies
yes by calling conventions I mean _CDECL and _STDCALL.
when should a user have to bother about it?
# 6  
only when you are porting C code between windows (x86) and unix
This User Gave Thanks to jim mcnamara For This Post:
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #800
Difficulty: Medium
In the system with radix 13, for example, a string of digits such as 398 denotes the (decimal) number 632.
True or False?

10 More Discussions You Might Find Interesting

1. Linux

UNIX Utility Development Conventions?

I'm slowly hacking away at a zsh script that shows some promise as a command line tool. I want to learn more about the conventions regarding command line tool development in Unix (and/or macOS), but don't really know where to look for this information. What is the correct way, or convention, to... (2 Replies)
Discussion started by: MonilGomes
2 Replies

2. Cybersecurity

Proper naming conventions

Hey guys, not sure should I post it here or in 'What is on Your Mind?' Iím discussing usage of DSL (domain specific language) in security tools with my colleagues. We haven't been able to reach an agreement over naming conventions. There are many tools using DSL: splunk, sumologic,... (2 Replies)
Discussion started by: Tobby P
2 Replies

3. Shell Programming and Scripting

How does calling it .sh help?

Hi. I have been running some scripts ok with no extension on the name, and they work fine. What difference does it make if I call them whatever.sh? And I have some scripts starting #!/bin/bash - which debian recognises as shell scritps, even without the .sh ending - and some which don't. I'm sure... (8 Replies)
Discussion started by: triplemaya
8 Replies

4. UNIX for Dummies Questions & Answers

Typographic conventions in bash 4.2

is there a typographic convention that is followed in the man pages. where could a description be found. at this time i am in man stty and the author uses upper case in some places. and my brain is just burning to a fizzle while studying a book on bash and trying to stay in scope of the... (1 Reply)
Discussion started by: cowLips
1 Replies

5. UNIX for Dummies Questions & Answers

question about man font conventions

i was viewing the gawk's man file,checked the man faqs,didnt find anything about the char "e" meaning .TP .B \e` matches the empty string at the beginning of a buffer (string). .TP .B \e' matches the empty string at the end of a buffer.after convention,it should looks like thie \` ... (2 Replies)
Discussion started by: b33713
2 Replies

6. UNIX for Dummies Questions & Answers

CSS coding conventions checker

I would like to use an automated checker for adherence to CSS coding conventions. I have browsed the web, but no tool I came across checks for coding conventions, only syntax. Here is a general list of requirements: - Style definitions should be separated by one blank line - Indentation is 2... (0 Replies)
Discussion started by: figaro
0 Replies

7. Solaris

A query on Disk naming conventions in Solaris.

These are findings by me with my little experience with Solaris 10. Please correct me if wrong.. In x86 systems with ide hard disk: c= controller d=disk s=slice 1.Here controller c0 means the primary ide controller ide0. controller c1 means the secondary ide controller ide1. ... (5 Replies)
Discussion started by: saagar
5 Replies

8. UNIX for Advanced & Expert Users

Naming conventions for shared libraries in Linux

Hello, I'm wondering what is the naming conventions for *.so shared libraries in linux. For example, a library in /lib, say libcrypt-2.7.so has a symbolic link called libcrypt.so.1 pointing to it, yet libncursesw.so.5.6 has a symbolic link called libncursesw.so.5 pointing to it. What is the... (2 Replies)
Discussion started by: neked
2 Replies

9. Shell Programming and Scripting

Get Calling File

OK, I'm very new to shell scripting, and I'm trying to write a (very) simple wrapper for sendmail that outputs all the arguments as well as the file that called sendmail to an output file which can later be looked over. Is it possible to get a file's name and path that called a script? (0 Replies)
Discussion started by: ghstber
0 Replies

10. Shell Programming and Scripting

Calling a script from another

Hi, I have 2 scripts, one is the .profile and the other is a SID selector for Oracle Databases. But when I call one from the other, even though it seems to have worked, it doesn't. Can anyone help?? ******************* .profile********************** #!/bin/ksh .... (5 Replies)
Discussion started by: dnkansah
5 Replies

Featured Tech Videos