Bug: BRepFill_Sweep.cxx line 572 (OCCT 6.5.2)

Hello,

since sprintf does not allocate memory the lines:

char* name;
sprintf(name,"wire-on-face");

will probably lead to a crash. My fix is to declare name as a fixed-size array instead:

char name[128];
sprintf(name,"wire-on-face");

Pawel

Massimo Del Fedele's picture

what about

char *name = strdup("wire-on-face")

and if needed

free(name)

? I usually see as dangerous the fixed-size arrays...

Max

Ma Yan's picture

Egal, du kanst deine eigene gepasste OCC-Libs kompilieren

Pawel's picture

Hello Max,

the variable 'name' is still needed when the function exits and I was too lazy to look for the place where it is not needed any more ;)

Pawel

Pawel's picture

by the way, most of the problems reported today were found by cppcheck.

Pawel

Thomas Paviot's picture

Hi Pawel,

I confirm. I ran cppcheck-1.52 over the current OCE master branch and it reported some of the issues you reported. I fixed a few of them, created a dev branch on github, and included your fixes (see https://github.com/tpaviot/oce/commits/tp/QA-fixes).

Thomas

Pawel's picture