Hi all,
This is how stream_read_uint32_be is implemented.
#define stream_read_uint32_be(_s, _v) do { _v = \
    (((uint32)(*(_s->p))) << 8) + \
    (((uint32)(*(_s->p + 1)))) + \
    (((uint32)(*(_s->p + 2))) << 24) + \
    (((uint32)(*(_s->p + 3))) << 16); \
    _s->p += 4; } while (0)
But this reads the integer wrongly as it should be in Big endian.
The correct implementation should be like this.
#define stream_read_uint32_be(_s, _v) do { _v = \
    (((uint32)(*(_s->p))) << 24) + \
    (((uint32)(*(_s->p + 1))) << 16) + \
    (((uint32)(*(_s->p + 2))) << 8) + \
    (((uint32)(*(_s->p + 3)))); \
    _s->p += 4; } while (0)

But the current implementaiton is used in ntlmssp.c to read negotiateFlags
.I don't know about it but it might break the ntlmssp.c .
So should i have another macro or should change the way it is read in
ntlmssp.c.
------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to