All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Hazelton <dhazelton@enter.net>
To: Jiri Kosina <jkosina@suse.cz>
Cc: Jan Kara <jack@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Nix <nix@esperi.org.uk>, Peter Osterlund <petero2@telia.com>,
	linux-kernel@vger.kernel.org, dm-devel@redhat.com,
	Jan Kara <jack@ucw.cz>
Subject: Re: 2.6.24.2: 4KSTACKS + pcdrw + dm + mount -> stack overflow: ide-cd related? dm-related?
Date: Tue, 26 Feb 2008 12:25:41 -0500	[thread overview]
Message-ID: <200802261225.41724.dhazelton@enter.net> (raw)
In-Reply-To: <Pine.LNX.4.64.0802261207140.30955@jikos.suse.cz>

On Tuesday 26 February 2008 06:10:34 Jiri Kosina wrote:
> On Mon, 25 Feb 2008, Jan Kara wrote:
> >   Yes, exactly two of them. One is  non-trivial to get rid of - it's
> > used for encoding of filename before we write it,
>
> Why can't we do just
>
>
>
> UDF: Optimize stack usage
>
> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
>
> diff --git a/fs/udf/namei.c b/fs/udf/namei.c
> index 112a5fb..706a2b5 100644
> --- a/fs/udf/namei.c
> +++ b/fs/udf/namei.c
> @@ -336,7 +336,7 @@ static struct fileIdentDesc *udf_add_entry(struct inode
> *dir, {
>  	struct super_block *sb = dir->i_sb;
>  	struct fileIdentDesc *fi = NULL;
> -	char name[UDF_NAME_LEN], fname[UDF_NAME_LEN];
> +	char *name, *fname;
>  	int namelen;
>  	loff_t f_pos;
>  	int flen;
> @@ -352,6 +352,14 @@ static struct fileIdentDesc *udf_add_entry(struct
> inode *dir, struct extent_position epos = {};
>  	struct udf_inode_info *dinfo;
>
> +	name = kmalloc(sizeof(char) * UDF_NAME_LEN, GFP_KERNEL);
> +	fname = kmalloc(sizeof(char) * UDF_NAME_LEN, GFP_KERNEL);
> +
> +	if (!name || !fname) {
> +		*err = -ENOMEM;
> +		return NULL;
> +	}
> +

Wouldn't it be better to check each individually, so you do wind up leaking a 
buffer here if one gets allocated and the other doesn't ?

>  	if (dentry) {
>  		if (!dentry->d_name.len) {
>  			*err = -EINVAL;
> diff --git a/fs/udf/super.c b/fs/udf/super.c
> index f3ac4ab..42e3ba8 100644
> --- a/fs/udf/super.c
> +++ b/fs/udf/super.c
> @@ -1345,7 +1345,7 @@ static void udf_load_logicalvolint(struct super_block
> *sb, kernel_extent_ad loc) *	July 1, 1997 - Andrew E. Mileski
>   *	Written, tested, and released.
>   */
> -static int udf_process_sequence(struct super_block *sb, long block,
> +static int noinline udf_process_sequence(struct super_block *sb, long
> block, long lastblock, kernel_lb_addr *fileset)
>  {
>  	struct buffer_head *bh = NULL;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

DRH

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.

  parent reply	other threads:[~2008-02-26 17:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-24  1:56 2.6.24.2: 4KSTACKS + PCA403CD IDE CD + pcdrw + mount + PREEMPT -> stack overflow Nix
2008-02-24 15:59 ` 2.6.24.2: 4KSTACKS + pcdrw + dm + mount -> stack overflow: ide-cd related? dm-related? Nix
2008-02-24 16:56   ` Peter Osterlund
2008-02-24 17:02     ` Nix
2008-02-25 20:30       ` Andrew Morton
2008-02-25 20:30         ` Andrew Morton
2008-02-25 22:48         ` Jan Kara
2008-02-25 22:51           ` Andrew Morton
2008-02-25 22:51             ` Andrew Morton
2008-02-26 11:10           ` Jiri Kosina
2008-02-26 11:29             ` Ingo Molnar
2008-02-26 11:29               ` Ingo Molnar
2008-02-26 11:37               ` Jiri Kosina
2008-02-26 16:41                 ` Jan Kara
2008-02-26 17:25             ` Daniel Hazelton [this message]
2008-03-06 16:14       ` Jan Kara
2008-03-10 20:09         ` Nix
2008-03-10 20:09           ` Nix
2008-02-25 20:25     ` Andrew Morton
2008-02-25 20:25       ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200802261225.41724.dhazelton@enter.net \
    --to=dhazelton@enter.net \
    --cc=akpm@linux-foundation.org \
    --cc=dm-devel@redhat.com \
    --cc=jack@suse.cz \
    --cc=jack@ucw.cz \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nix@esperi.org.uk \
    --cc=petero2@telia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.