Just a general question before I start submitting patches. What is the general policy for error handling in FreeRDP?
For example, the bug I'm chasing right now: "xf_window.c" line 303: xfWindow* xf_CreateWindow(xfInfo* xfi, rdpWindow* wnd, int x, int y, int width, int height, uint32 id) { xfWindow* window; window = (xfWindow*) xzalloc(sizeof(xfWindow)); if ((width * height) < 1) return NULL; xf_FixWindowCoordinates(xfi, &x, &y, &width, &height); window->left = x; window->top = y; window->right = x + width - 1; window->bottom = y + height - 1; window->width = width; window->height = height; if (window != NULL) { Note there is a bug (window being checked for NULL after it already been dereferenced), and also a memory leak (return NULL after allocation without a free) and also that this function can return NULL. Back up at the caller: xf_rail line 78: void xf_rail_CreateWindow(rdpRail* rail, rdpWindow* window) { xfInfo* xfi; xfWindow* xfw; xfi = (xfInfo*) rail->extra; xf_rail_FilterWindowInfo(rail, window); xfw = xf_CreateWindow((xfInfo*) rail->extra, window, window->windowOffsetX, window->windowOffsetY, window->windowWidth, window->windowHeight, window->windowId); xf_SetWindowStyle(xfi, xfw, window->style, window->extendedStyle); The return code is never checked. The end result is a segfault to the user when window is dereferenced. (The actual bug is that width and height being passed to xf_CreateWindow were zero for some reason, thus it returned a NULL) Just wondering if I should be doing something with return code checking as I encounter these cases. -David ------------------------------------------------------------------------------ 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