ソースを参照

[mucurses] Attempt to fix resource leaks

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 7年前
コミット
2ae759219b
1個のファイルの変更4行の追加6行の削除
  1. 4
    6
      src/hci/mucurses/windows.c

+ 4
- 6
src/hci/mucurses/windows.c ファイルの表示

48
 WINDOW *derwin ( WINDOW *parent, int nlines, int ncols,
48
 WINDOW *derwin ( WINDOW *parent, int nlines, int ncols,
49
 	     		  	 int begin_y, int begin_x ) {
49
 	     		  	 int begin_y, int begin_x ) {
50
 	WINDOW *child;
50
 	WINDOW *child;
51
-	if ( ( child = malloc( sizeof( WINDOW ) ) ) == NULL )
52
-		return NULL;
53
 	if ( ( (unsigned)ncols > parent->width ) || 
51
 	if ( ( (unsigned)ncols > parent->width ) || 
54
 	     ( (unsigned)nlines > parent->height ) )
52
 	     ( (unsigned)nlines > parent->height ) )
55
 		return NULL;
53
 		return NULL;
54
+	if ( ( child = malloc( sizeof( WINDOW ) ) ) == NULL )
55
+		return NULL;
56
 	child->ori_y = parent->ori_y + begin_y;
56
 	child->ori_y = parent->ori_y + begin_y;
57
 	child->ori_x = parent->ori_x + begin_x;
57
 	child->ori_x = parent->ori_x + begin_x;
58
 	child->height = nlines;
58
 	child->height = nlines;
113
  */
113
  */
114
 WINDOW *newwin ( int nlines, int ncols, int begin_y, int begin_x ) {
114
 WINDOW *newwin ( int nlines, int ncols, int begin_y, int begin_x ) {
115
 	WINDOW *win;
115
 	WINDOW *win;
116
-	if ( ( win = malloc( sizeof(WINDOW) ) ) == NULL )
117
-		return NULL;
118
 	if ( ( (unsigned)( begin_y + nlines ) > stdscr->height ) &&
116
 	if ( ( (unsigned)( begin_y + nlines ) > stdscr->height ) &&
119
 	     ( (unsigned)( begin_x + ncols ) > stdscr->width ) )
117
 	     ( (unsigned)( begin_x + ncols ) > stdscr->width ) )
120
 		return NULL;
118
 		return NULL;
119
+	if ( ( win = malloc( sizeof(WINDOW) ) ) == NULL )
120
+		return NULL;
121
 	win->ori_y = begin_y;
121
 	win->ori_y = begin_y;
122
 	win->ori_x = begin_x;
122
 	win->ori_x = begin_x;
123
 	win->height = nlines;
123
 	win->height = nlines;
140
 WINDOW *subwin ( WINDOW *parent, int nlines, int ncols,
140
 WINDOW *subwin ( WINDOW *parent, int nlines, int ncols,
141
 			         int begin_y, int begin_x ) {
141
 			         int begin_y, int begin_x ) {
142
 	WINDOW *child;
142
 	WINDOW *child;
143
-	if ( ( child = malloc( sizeof( WINDOW ) ) ) == NULL )
144
-		return NULL;
145
 	child = newwin( nlines, ncols, begin_y, begin_x );
143
 	child = newwin( nlines, ncols, begin_y, begin_x );
146
 	child->parent = parent;
144
 	child->parent = parent;
147
 	child->scr = parent->scr;
145
 	child->scr = parent->scr;

読み込み中…
キャンセル
保存