c/9557: gcc 2.95.3 20010315 (SuSE) problem with place of variable

bangerth@dealii.org bangerth@dealii.org
Mon Feb 3 23:42:00 GMT 2003


Synopsis: gcc  2.95.3 20010315 (SuSE) problem with place of variable

State-Changed-From-To: open->closed
State-Changed-By: bangerth
State-Changed-When: Mon Feb  3 23:42:38 2003
State-Changed-Why:
    User error -- read sscanf man page:
    -----------------------
      struct lien *con;
      short  port;
        
      con=(struct lien *)malloc(sizeof(struct lien));
      sscanf(n_service, "%d", &port);
      con->adr4.sin_port =1;
    --------------------------
    Using a short with %d is bound to write beyond its bounds.
    You overwrite the value of the con pointer, which afterwards
    points to no-go land. Use an integer with %d and your
    program works again. The fact that it worked by exchanging
    variable declarations just means that instead of the con
    pointer, you overwrote the ok flag.
    
    W.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9557



More information about the Gcc-bugs mailing list