|
From: John R. <jr...@bi...> - 2019-03-15 21:54:29
|
What is the version of valgrind? (run "valgrind --version")
What is the hardware architecture?
What is the value of MAX_FSTAB_ROWS ?
> ==9332== Address 0xffed476bc is on thread 1's stack
Note that the address of the Invalid write is 0xffed476bc which is 0xf_fed4_76bc or around 63 GiB.
That is very large, so large that it is very much more than the usual default maximum size
of a thread stack, which typically is 8 MiB or 16 MiB.
Try invoking valgrind with the parameter --main-stacksize=64000000000 which *might* work.
Otherwise: use malloc() instead of on-stack allocation for the myFSTABrows array.
> 2128 PFSTAB FstabInit(
> 2129 FSTAB_SetId id /* Set-Id fuer die jeweilige FSTAB */
> 2130 )
> 2131 {
> 2132 /*-------------------------------------------------------------------------*/
> 2133 char *funk = "FstabInit()";
> 2134
> 2135 /* t_sik_fstab lesePuffer=SIK_FSTAB_EMPTY; */
> 2136 DB_ERR dbError;
> 2137 PFSTAB fstab = NULL;
> 2138
> 2139 int anzFstabElemente = 0, anzIndikatorfelder = 0;
> 2140 int anzRows = 0;
> 2141
> 2142 /* SRP-23121: we read the complete FSTAB into memory because we
> 2143 * have to pass twice through it for the logic of indicator fields
> 2144 *
> 2145 * maybe we should malloc() the space ...
> 2146 * the number MAX_FSTAB_ROWS is the limit for one set in FSTAB
> 2147 */
> 2148 t_sik_fstab myFSTABrows[MAX_FSTAB_ROWS];
> 2149
> 2150 /* check the SetId */
> 2151 if( id == FSTAB_Null || id >= FSTAB_Alle ) goto ABBRUCH;
> 2152
> 2153 /* init the buffer for read */
> 2154 memset( &myFSTABrows[anzRows], 0, sizeof( t_sik_fstab ));
> 2155
>
>
> ---------------------------
>
> ==9332== Invalid write of size 4
> ==9332== at 0x9DE90EF: FstabInit (BKFstab.c:2131)
> ==9332== by 0x6BFF1E8: OpsInitDatabase (SRVServerInit.c:1299)
> ==9332== by 0x413B48: SlnpInitDaemon (OPDaemon.c:738)
> ==9332== by 0x413657: main (OPDaemon.c:272)
> ==9332== Address 0xffed476bc is on thread 1's stack
> ==9332== in frame #0, created by FstabInit (BKFstab.c:2131)
> ==9332==
> ==9332== Invalid read of size 4
> ==9332== at 0x9DE911D: FstabInit (BKFstab.c:2151)
> ==9332== by 0x6BFF1E8: OpsInitDatabase (SRVServerInit.c:1299)
> ==9332== by 0x413B48: SlnpInitDaemon (OPDaemon.c:738)
> ==9332== by 0x413657: main (OPDaemon.c:272)
> ==9332== Address 0xffed476bc is on thread 1's stack
> ==9332== in frame #0, created by FstabInit (BKFstab.c:2131)
|