Regarding using strcmp instead of memcmp
Hi this is where the error is occurring in UMR & ABR in the following files, While running with purify. Command-line: radiusd -X UMR: Uninitialized memory read (3 times) This is occurring while in: memcmp [rtlib.o] cf_expand_variables [conffile.c:369] p += strlen(p); ptr = end + 1; => } else if (memcmp(ptr, "$ENV{", 5) == 0) { char *env; ptr += 5; cf_section_read [conffile.c:785] /* * Handle variable substitution via ${foo} */ => value = cf_expand_variables(cf, lineno, cs, buf, buf3); if (!value) { cf_section_free(&cs); return NULL; conf_read [conffile.c:834] return NULL; } => if(parent) { cs = cf_section_read(conffile, &lineno, fp, NULL, NULL, parent); } else { cs = cf_section_read(conffile, &lineno, fp, NULL, NULL, NULL); read_radius_conf_file [mainconfig.c:1145] radlog(L_ERR|L_CONS, "radius_dir : %s",radius_dir); if ((cs = conf_read(NULL, 0, buffer, NULL)) == NULL) { => return NULL; } /* read_mainconfig [mainconfig.c:1190] /* First read radiusd.conf */ DEBUG2("reread_config: reading radiusd.conf"); if ((cs = read_radius_conf_file()) == NULL) { => if (debug_flag || (radlog_dir == NULL)) { radlog(L_ERR|L_CONS, "Errors reading radiusd.conf"); } else { Reading 5 bytes from 0xffbe51d0 on the stack (1 byte at 0xffbe51d4 uninit). Address 0xffbe51d0 is 68 bytes past start of local variable "cs" in function cf_section_read. And the ABR error as below ABR: Array bounds read This is occurring while in: memcmp [rtlib.o] rad_respond [radiusd.c:1744] pairfind(request->packet->vps, PW_PASSWORD)); reprocess = 1; } => if (strcmp(mainconfig.do_nospace_user, "after") == 0) { rad_rmspace_pair(request, request->username); reprocess = 1; } main [radiusd.c:1502] } } else #endif => rad_respond(request, fun); } /* loop over listening sockets*/ #ifdef WITH_SNMP _start [crt1.o] Reading 6 bytes from 0xc5c20 in the heap (3 bytes at 0xc5c23 illegal). Address 0xc5c20 is at the beginning of a malloc'd block of 3 bytes. This block was allocated from: malloc [rtlib.o] strdup [libc.so.1] cf_section_parse [conffile.c:527] cs->name1, variables[i].name, value ? value : "(null)"); => *q = value ? strdup(value) : NULL; break; case PW_TYPE_IPADDR: read_radius_conf_file [mainconfig.c:1153] * radiusd.conf, the other configuration files exist. */ cf_section_parse(cs, NULL, server_config); Thanks & Regards Ravi ============================================================================================================================ Tech Mahindra, formerly Mahindra-British Telecom. Disclaimer: This message and the information contained herein is proprietary and confidential and subject to the Tech Mahindra policy statement, you may review at <a href="http://www.techmahindra.com/Disclaimer.html">http://www.techmahindra.com/Disclaimer.html</a> externally and <a href="http://tim.techmahindra.com/Disclaimer.html">http://tim.techmahindra.com/Disclaimer.html</a> internally within Tech Mahindra. ============================================================================================================================
"Ravi S M" <smravi@TechMahindra.com> wrote:
Hi this is where the error is occurring in UMR & ABR in the following files, While running with purify.
Which version of the server? It's not 1.1.2, so I'm not sure which version you have. And I'm not sure I understand the output. And, you haven't posted the input, so there's no way for anyone to reproduce the problem. And, I've run it through valgrind (a free version of Purify), which doesn't complain for the tests I've run. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
participants (2)
-
Alan DeKok -
Ravi S M