Issue in kbd package
Hi all
I'm Jose R. Guzman from a security team at Intel.
We have included kbd package in a GNU-Linux project and I'm analyzing the code to try to find some possible vulnerabilities, issues or risks.
Since I'm not too familiar with the package yet I think I have found an issue and I'd like you to help me checking it. It could result in a memory leak.
Package version: kbd-2.0.2
File: src/setfont.c
Function: static void loadnewfonts(int fd, char **ifiles, int ifilct, int iunit, int hwunit, int no_m, int no_u)
Line: ~459
Description: There is a variable "bigfontbuf" that contains memory allocated dynamically in a "for" loop by calling "xrealloc" function. After the loop the variable is passed as parameter in "do_loadfont" call, however I don't see any point where such memory get free befor returning from function. Also variable is local and the pointer is not stored in any other variable. So I think that is a memory leak. Is it?
Another issue that I found is a handler being not closed:
File: src/openvt.c
Function: static char *authenticate_user(int curvt)
Line: ~119
Description: There is a variable "dp" used to store a file handler of a proc dir. I don't see any point inside the function where such handler is freed after being used.
I really appreciate if someone can take a look and tell me whether they are really issues or not.
Thanks in advance.
Regards,
Jose R.
Quoted 31 lines · Jose R
Hi all
I'm Jose R. Guzman from a security team at Intel.
We have included kbd package in a GNU-Linux project and I'm analyzing the code to try to find some possible vulnerabilities, issues or risks.Since I'm not too familiar with the package yet I think I have found an issue and I'd like you to help me checking it. It could result in a memory leak.
Package version: kbd-2.0.2
File:src/setfont.c
Function: static voidloadnewfonts(int fd, char **ifiles, int ifilct, int iunit, int hwunit, int no_m, int no_u)
Line: ~459
Description: There is a variable "bigfontbuf" that contains memory allocated dynamically in a "for" loop by calling "xrealloc" function. After the loop the variable is passed as parameter in "do_loadfont" call, however I don't see any point where such memory get free befor returning from function. Also variable is local and the pointer is not stored in any other variable. So I think that is a memory leak. Is it?Another issue that I found is a handler being not closed:
File:src/openvt.c
Function: static char *authenticate_user(int curvt)
Line: ~119
Description: There is a variable "dp" used to store a file handler of a proc dir. I don't see any point inside the function where such handler is freed after being used.
Quoted 2 lines
I really appreciate if someone can take a look and tell me whether they are really issues or not.
You are right. Fixed in the master.
http://git.kernel.org/cgit/linux/kernel/git/legion/kbd.git
Signature · 1 line
Rgrds, legion