[Liblas-devel] Fix for the bug that liblas cannot open some Lidar files

Howard Butler hobu.inc at gmail.com
Wed Oct 5 16:03:43 EDT 2011


On Oct 5, 2011, at 12:38 PM, Hongwei Shen wrote:

> Hello,  Folks,
> 
> Recently I couldn't open some Lidar (.las) files using liblas. I
> debugged for the problem and changed two lines of codes fix it.
> 
> I changed line  362 and 363 in liblas\1.7.0b\src\detail\reader\header.cpp :
>        vlr.SetUserId(std::string(vlrh.userId));
>        vlr.SetDescription(std::string(vlrh.description));
> 
> The above two lines should be changed to:
>        vlr.SetUserId(std::string(vlrh.userId, 16)); // Length of
> userId is 16 in the header
>        vlr.SetDescription(std::string(vlrh.description, 32)); //
> Length of userId is 32 in the header
> 
> The problem is ---  Header::ReadVLRs() assumes “user_id” and
> “description”  are null-terminating string in the header of lidar
> file, which is not always true.  For example, some Lidar files use
> blank spaces at the end of real "user_id" to fill a length of 16
> bytes.
> 
> I could be able to open these Lidar files using liblas after I changed
> the code.
> 
> 
> I don't know how to change source code of liblas or submit bugs
> online.  So I'm sending this email.   Can someone integrate my changes
> into liblas code?
> 
> Thanks,
> Hongwei Shen

Thanks Hongwei,

Thank you for the report, and I have integrated a patch that does what you have suggested. One way that you can provide these yourself is to create a github account, "fork" the liblas repository, and then commit your changes to your own fork of the liblas repository. After that, you can click on "Pull Request" and we will be notified of a suggested patch that we can choose to integrate at will or modify and integrate into the library.

https://github.com/libLAS/libLAS/commit/363eeb3213f5526ff2fb97553319d35dfd8727d0

Howard



More information about the Liblas-devel mailing list