Opened 22 years ago

Closed 22 years ago

#181 closed defect (fixed)

Empty PROJECTION in mapfile crashes MapServer in Windows

Reported by: dmorissette Owned by: jlacroix
Priority: high Milestone:
Component: MapServer C Library Version: 4.0
Severity: normal Keywords:
Cc: dmartin@…

Description

It seems that an empty PROJECTION object in a mapfile will cause a crash on 
Windows with MapServer 3.6.

Julien, can you please check if you can reproduce and fix this on Linux, and if 
not then we'll have to reassign the bug to Assefa.

See full problem description below...

-------------
Subject:         Projection bug - I finally figured it out
   Date:         Mon, 5 Aug 2002 14:14:21 -0500
   From:         "Martin, Daniel" <DMartin@erac.com>
     To:         "'Daniel Morissette'" <morissette@dmsolutions.ca>

Daniel,
A while ago I mentioned a bug in your binary which was popping an error on
the server that said: 
The instruction at "0x00406553" referenced memory at "0x00000000".  The
memory could not be read

To refresh your memory, I was trying to use your binary since it was
compiled with the fix of the OGR MITAB Seamless performance issue I had
reported.  I finally figured out the cause of this bug.

I had this is many of my map files:

PROJECTION
#       "proj=latlong"
#       "proj=laea" 
#       "ellps=WGS84" 
#       "lon_0=Central Meridian"
#     "lat_ts=Standard Parallel"
#       "x_0=False Easting"
#     "y_0=False Northing" 
END

If you have an empty projection object, it causes the error.  The same map
files used to work.  The simple fix is either make sure you define a
projection if you have a Projection object, or leave the Projection object
out all together.  

The obvious question is why define an empty Projection layer.  I got into
the habit of putting a list of projections and uncommenting the ones I
wanted to use.  However, if I didn't want any reprojection I didn't remove
the # from any lines (and thus the error).  In the future, I'll just
remember to comment out the entire object.  I should also mention that it
now also occurs in the latest Win32 binary from UMN.

Thanks,
Dan Martin

Change History (1)

comment:1 by jlacroix, 22 years ago

Resolution: fixed
Status: newclosed
It's fix in 3.7.

A validation was missing before the creation of the projection object to saw if
the projection contains something. Now, if the projection contains nothing, the
loadProjection() function return 0.
Note: See TracTickets for help on using tickets.