These sure look questionable to me:
Those were the only variables using of heap memory I noted in that code, and that code snippet tells me someone's trying everything they can think of to patch over the problem. I'd make sure every possible use of strcpy() or similar is changed to an equivalent strncpy() to make sure the buffers those variables point to aren't overwritten.
I'd probably also convert them to stack variables:
There's a good chance that even doing all that won't work - I didn't see anything in that code that ensures the heap is being corrupted in the code you provided - it could be getting corrupted somewhere else in your application. ANYWHERE else in your application.
So, if the problem persists after that, go to your boss and explain to him that he can keep paying you and however many others are working on this problem $X per hour, or he can just pay for a real memory checking tool. Guess which one is going to be cheaper.
Look at it this way: would you expect someone to fix a car using only two screwdrivers and a pair of pliers? There are tools that make jobs easier, faster, and cheaper. A LOT easier, faster, and cheaper.
does any one have read a core dump?
is there any reader for that? or may i know what is the use of that core which takes sometimes memory in GBs?
:) (6 Replies)
Hi ,
Working on AIX 4.3. An internal error from my apps engine suddenly causes the engine to die. During this time i do notice a core file being dumped in the directory from where I try to re-start my engine.
Q is how does one read this core file, or I should say 'what is this core file'?
thnx (2 Replies)
I've got a core dump in my weblogic home directory, which i have tried to debug by initiating savecore from /etc/init.d/savecore start
but savecore failed to create the two files, that is vmcore.n and vmunix.n.
savecore is enable on my server to save vmcore and vmunix in /var/crash/hostname
1)... (4 Replies)
Hi All,
i am new to this forum.i want detail of reading the core file and trace the problem because of what the program get crashed.please help me.if any body knows any website or tutoril plese let me know.
sudhir (6 Replies)
Hi All
I am new for this forum. I have a core file by using gdb and bt cmd I got the function name but I want to the exact cause of the core dump because of I can not reproduse the binary so if any one know the cmd plz plz plz let me know. (0 Replies)
Hello all,
Iam new to unix while executing java program which finely working in windows know iam testing with unix ,but in unix while executing iam getting core dump, my application is in client server environment and it is menu drivrn application on clicking options no problem but after some time... (1 Reply)
how to view core dumped file using gdb and how to extract information from the coredumped file.can we get similar information from the other utilites like strace or ptrace. (2 Replies)
Hi guys,
just want to know which core file pattern is best to set for core dumps:
1) per-process file name pattern
or
2) global file name pattern.
I will really appreciate an explanation why the chosen one is better.
Thanks a lot guys. (2 Replies)
Discussion started by: cjashu
2 Replies
LEARN ABOUT SUNOS
strspn
strcpy(9F) Kernel Functions for Drivers strcpy(9F)NAME
strcpy, strlcat, strlcpy, strncat, strncpy, strspn - String operations.
SYNOPSIS
#include <sys/ddi.h>
char *strcpy(char *dst, const char *src);
size_t strlcat(char *dst, const char *src, size_t dstsize);
size_t strlcpy(char *dst, const char *src, size_t dstsize);
char *strncat(char *restrict s1, const char *restrict s2, size_t n);
char *strncpy(char *dst, const char *src, size_t n);
size_t strspn(const char *s1, const char *s2);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
PARAMETERS
dst, src Pointers to character strings.
s1, s2 Pointers to character strings.
n Count of characters to be copied.
DESCRIPTION
The arguments dst, src, s1 and s2 point to strings. The strcpy(), strlcpy(), strncpy(), strlcat() and strncat() functions all alter their
first argument. These functions do not check for overflow of the array pointed to by the first argument.
strcpy()
The strcpy() function copies characters in the string src to dst, terminating at the first null character in src, and returns dst to the
caller. No bounds checking is done.
strncpy()
The strncpy() function copies src to dst, null-padding or truncating at n bytes, and returns dst. No bounds checking is done.
strlcpy()
The strlcpy() function copies a maximum of dstsize-1 characters (where dstsize represents the size of the string buffer dst) from src to
dst, truncating src if necessary. The result is always null-terminated. The function returns strlen(src). Buffer overflow can be checked
as follows:
if (strlcpy(dst, src, dstsize) >= dstsize)
return (-1);
strncat()
The strncat() function appends a maximum of n characters. The initial character of s2 overrides the null character at the end of s1.
strlcat()
The strlcat() function appends a maximum of (dstsize- strlen(dst)-1) characters of src to dst (where dstsize represents the size of the
string buffer dst). If the string pointed to by dst contains a null-terminated string that fits into dstsize bytes when strlcat() is
called, the string pointed to by dst is a null-terminated string that fits in dstsize bytes (including the terminating null character) when
it completes, and the initial character of src overrides the null character at the end of dst. If the string pointed to by dst is longer
than dstsize bytes when strlcat() is called, the string pointed to by dst is not changed. The function returns min{dst-
size,strlen(dst)}+strlen(src). Buffer overflow can be checked as follows:
if (strlcat(dst, src, dstsize) >= dstsize)
return -1;
strspn()
The strspn() function returns the length of the initial segment of string s1 that consists entirely of characters from string s2.
RETURN VALUES
strcpy(), strncat() and strncpy() return dst.
For strlcat(), strlcpy() and strspn(), see the Description section.
CONTEXT
These functions can be called from user or interrupt context.
SEE ALSO strlen(9F), strcmp(9F), bcopy(9F), ddi_copyin(9F)
Writing Device Drivers
SunOS 5.10 7 Sep 2004 strcpy(9F)