All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam()
@ 2015-05-12  6:27 Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 2/5] kernel/mem/hugetlb/lib: remove unused codes " Wei,Jiangang
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Wei,Jiangang @ 2015-05-12  6:27 UTC (permalink / raw)
  To: ltp-list

The getpwnam() function returns a pointer for a passwd
structure. So,
It's enough to declare a pointer to this structure,
not to allocate memory for it.

Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
---
 testcases/kernel/syscalls/ipc/lib/libipc.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/testcases/kernel/syscalls/ipc/lib/libipc.c b/testcases/kernel/syscalls/ipc/lib/libipc.c
index f10e257..4de7faa 100644
--- a/testcases/kernel/syscalls/ipc/lib/libipc.c
+++ b/testcases/kernel/syscalls/ipc/lib/libipc.c
@@ -143,12 +143,6 @@ int getuserid(char *user)
 {
 	struct passwd *ent;
 
-	/* allocate some space for the passwd struct */
-	if ((ent = malloc(sizeof(struct passwd))) == NULL) {
-		tst_brkm(TBROK, cleanup, "couldn't allocate space for passwd"
-			 " structure");
-	}
-
 	/* get the uid value for the user */
 	if ((ent = getpwnam(user)) == NULL) {
 		tst_brkm(TBROK, cleanup, "Couldn't get password entry for %s",
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [LTP] [PATCH v2 2/5] kernel/mem/hugetlb/lib: remove unused codes for getpwnam()
  2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
@ 2015-05-12  6:27 ` Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 3/5] kernel/syscalls/dup2: optimize allocation and free Wei,Jiangang
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Wei,Jiangang @ 2015-05-12  6:27 UTC (permalink / raw)
  To: ltp-list

No need to allocate memory for getpwnam()'s return.
so remove these unuseful codes.

Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
---
 testcases/kernel/mem/hugetlb/lib/libipc.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/testcases/kernel/mem/hugetlb/lib/libipc.c b/testcases/kernel/mem/hugetlb/lib/libipc.c
index 21fd8da..1f16f22 100644
--- a/testcases/kernel/mem/hugetlb/lib/libipc.c
+++ b/testcases/kernel/mem/hugetlb/lib/libipc.c
@@ -85,10 +85,6 @@ int getuserid(char *user)
 {
 	struct passwd *ent;
 
-	ent = malloc(sizeof(struct passwd));
-	if (ent == NULL)
-		tst_brkm(TBROK | TERRNO, cleanup, "malloc ent");
-
 	ent = getpwnam(user);
 	if (ent == NULL)
 		tst_brkm(TBROK | TERRNO, cleanup, "getpwnam");
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [LTP] [PATCH v2 3/5] kernel/syscalls/dup2: optimize allocation and free
  2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 2/5] kernel/mem/hugetlb/lib: remove unused codes " Wei,Jiangang
@ 2015-05-12  6:27 ` Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 4/5] kernel/syscalls/fallocate: adjust fclose's position Wei,Jiangang
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Wei,Jiangang @ 2015-05-12  6:27 UTC (permalink / raw)
  To: ltp-list

Move the allocation and free to the cleanup and setup
respectively and ensure free fildes safely.

Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
---
 testcases/kernel/syscalls/dup2/dup205.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/testcases/kernel/syscalls/dup2/dup205.c b/testcases/kernel/syscalls/dup2/dup205.c
index 14218dd..0b32453 100644
--- a/testcases/kernel/syscalls/dup2/dup205.c
+++ b/testcases/kernel/syscalls/dup2/dup205.c
@@ -40,6 +40,8 @@
 
 char *TCID = "dup205";
 int TST_TOTAL = 1;
+int *fildes;
+int min;
 int local_flag;
 
 #define PASSED 1
@@ -50,10 +52,8 @@ static void cleanup(void);
 
 int main(int ac, char *av[])
 {
-	int *fildes;
 	int ifile;
 	char pfilname[40];
-	int min;
 	int serrno;
 
 	int lc;
@@ -68,12 +68,6 @@ int main(int ac, char *av[])
 
 	for (lc = 0; TEST_LOOPING(lc); lc++) {
 
-		min = getdtablesize();	/* get number of files allowed open */
-
-		fildes = malloc((min + 10) * sizeof(int));
-		if (fildes == NULL)
-			tst_brkm(TBROK | TERRNO, cleanup, "malloc error");
-
 		sprintf(pfilname, "./dup205.%d\n", getpid());
 		unlink(pfilname);
 		serrno = 0;
@@ -125,9 +119,16 @@ int main(int ac, char *av[])
 static void setup(void)
 {
 	tst_tmpdir();
+
+	min = getdtablesize();	/* get number of files allowed open */
+	fildes = malloc((min + 10) * sizeof(int));
+	if (fildes == NULL)
+		tst_brkm(TBROK | TERRNO, cleanup, "malloc error");
 }
 
 static void cleanup(void)
 {
+	if (fildes != NULL)
+		free(fildes);
 	tst_rmdir();
 }
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [LTP] [PATCH v2 4/5] kernel/syscalls/fallocate: adjust fclose's position
  2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 2/5] kernel/mem/hugetlb/lib: remove unused codes " Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 3/5] kernel/syscalls/dup2: optimize allocation and free Wei,Jiangang
@ 2015-05-12  6:27 ` Wei,Jiangang
  2015-05-12  6:27 ` [LTP] [PATCH v2 5/5] kernel/mem/mmapstress: avoid resource leak Wei,Jiangang
  2015-05-12  8:02 ` [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wanlong Gao
  4 siblings, 0 replies; 6+ messages in thread
From: Wei,Jiangang @ 2015-05-12  6:27 UTC (permalink / raw)
  To: ltp-list

It will encounter resource leak for fp,
while fopen succeeds and the pointer para is NULL.
so need to move fclose out of if-block.

Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
---
 testcases/kernel/sched/hyperthreading/ht_interrupt/ht_utils.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/sched/hyperthreading/ht_interrupt/ht_utils.c b/testcases/kernel/sched/hyperthreading/ht_interrupt/ht_utils.c
index 1c33d0c..bd2d373 100644
--- a/testcases/kernel/sched/hyperthreading/ht_interrupt/ht_utils.c
+++ b/testcases/kernel/sched/hyperthreading/ht_interrupt/ht_utils.c
@@ -30,8 +30,13 @@ int is_cmdline_para(const char *para)
 				return 1;
 			}
 		}
-		fclose(fp);
 	}
+	/* If fopen succeeds and the pointer para is NULL,
+	 * It won't enter the above if-block.
+	 * so need to close fp here.
+	 */
+	if (fp != NULL)
+		fclose(fp);
 
 	return 0;
 }
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [LTP] [PATCH v2 5/5] kernel/mem/mmapstress: avoid resource leak
  2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
                   ` (2 preceding siblings ...)
  2015-05-12  6:27 ` [LTP] [PATCH v2 4/5] kernel/syscalls/fallocate: adjust fclose's position Wei,Jiangang
@ 2015-05-12  6:27 ` Wei,Jiangang
  2015-05-12  8:02 ` [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wanlong Gao
  4 siblings, 0 replies; 6+ messages in thread
From: Wei,Jiangang @ 2015-05-12  6:27 UTC (permalink / raw)
  To: ltp-list

* Avoid memory leak by allocate readbuf on the stack,
  not by malloc.

* close file descriptor explicitly before return.

Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
---
 testcases/kernel/mem/mmapstress/mmapstress01.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/testcases/kernel/mem/mmapstress/mmapstress01.c b/testcases/kernel/mem/mmapstress/mmapstress01.c
index 0baf0e2..ed1466a 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress01.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress01.c
@@ -602,9 +602,9 @@ int fileokay(char *file, uchar_t * expbuf)
 	struct stat statbuf;
 #endif /* LARGE_FILE */
 	size_t mapsize;
-	uchar_t *readbuf;
 	unsigned mappages;
 	unsigned pagesize = sysconf(_SC_PAGE_SIZE);
+	char readbuf[pagesize];
 	int fd;
 	int cnt;
 	unsigned i, j;
@@ -641,7 +641,6 @@ int fileokay(char *file, uchar_t * expbuf)
 		perror("lseek");
 		anyfail();
 	}
-	readbuf = malloc(pagesize);
 
 	if (statbuf.st_size - sparseoffset > SIZE_MAX) {
 		fprintf(stderr, "size_t overflow when setting up map\n");
@@ -668,6 +667,7 @@ int fileokay(char *file, uchar_t * expbuf)
 				(void)fprintf(stderr, "read %d of %ld bytes\n",
 					      (i * pagesize) + cnt,
 					      (long)mapsize);
+				close(fd);
 				return 0;
 			}
 		}
@@ -688,6 +688,7 @@ int fileokay(char *file, uchar_t * expbuf)
 					      "(fsize %ld)\n", i, j,
 					      statbuf.st_size);
 #endif /* LARGE_FILE */
+				close(fd);
 				return 0;
 			}
 		}
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam()
  2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
                   ` (3 preceding siblings ...)
  2015-05-12  6:27 ` [LTP] [PATCH v2 5/5] kernel/mem/mmapstress: avoid resource leak Wei,Jiangang
@ 2015-05-12  8:02 ` Wanlong Gao
  4 siblings, 0 replies; 6+ messages in thread
From: Wanlong Gao @ 2015-05-12  8:02 UTC (permalink / raw)
  To: Wei,Jiangang; +Cc: ltp-list


Applied all, thank you.

Wanlong Gao

On 05/12/2015 02:27 PM, Wei,Jiangang wrote:
> The getpwnam() function returns a pointer for a passwd
> structure. So,
> It's enough to declare a pointer to this structure,
> not to allocate memory for it.
> 
> Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
> ---
>  testcases/kernel/syscalls/ipc/lib/libipc.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/ipc/lib/libipc.c b/testcases/kernel/syscalls/ipc/lib/libipc.c
> index f10e257..4de7faa 100644
> --- a/testcases/kernel/syscalls/ipc/lib/libipc.c
> +++ b/testcases/kernel/syscalls/ipc/lib/libipc.c
> @@ -143,12 +143,6 @@ int getuserid(char *user)
>  {
>  	struct passwd *ent;
>  
> -	/* allocate some space for the passwd struct */
> -	if ((ent = malloc(sizeof(struct passwd))) == NULL) {
> -		tst_brkm(TBROK, cleanup, "couldn't allocate space for passwd"
> -			 " structure");
> -	}
> -
>  	/* get the uid value for the user */
>  	if ((ent = getpwnam(user)) == NULL) {
>  		tst_brkm(TBROK, cleanup, "Couldn't get password entry for %s",
> 


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-05-12  8:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-12  6:27 [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wei,Jiangang
2015-05-12  6:27 ` [LTP] [PATCH v2 2/5] kernel/mem/hugetlb/lib: remove unused codes " Wei,Jiangang
2015-05-12  6:27 ` [LTP] [PATCH v2 3/5] kernel/syscalls/dup2: optimize allocation and free Wei,Jiangang
2015-05-12  6:27 ` [LTP] [PATCH v2 4/5] kernel/syscalls/fallocate: adjust fclose's position Wei,Jiangang
2015-05-12  6:27 ` [LTP] [PATCH v2 5/5] kernel/mem/mmapstress: avoid resource leak Wei,Jiangang
2015-05-12  8:02 ` [LTP] [PATCH v2 1/5] kernel/syscalls/ipc/lib: Don't allocate memory for getpwnam() Wanlong Gao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.