linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] lib/string_helpers et al.: Change return value of strreplace()
@ 2023-03-22 14:12 Andy Shevchenko
  2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-22 14:12 UTC (permalink / raw)
  To: Kees Cook, Greg Kroah-Hartman, Andy Shevchenko, Cezary Rojewski,
	linux-ext4, linux-kernel
  Cc: Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

It's more convenient to have strreplace() to return the original
pointer. This will help users to make their code better.

The patch 1 kills the only user of the returned value of strreplace(),
Patch 2 converts the return value of strreplace(). And patch 3 shows
how it may be useful.That said, the series can be routed via fs tree,
with or without the last patch.

Andy Shevchenko (3):
  jbd2: Avoid printing out the boundary
  lib/string_helpers: Change returned value of the strreplace()
  kobject: Use return value of strreplace()

 fs/jbd2/journal.c      |  5 ++---
 include/linux/string.h |  2 +-
 lib/kobject.c          |  3 +--
 lib/string_helpers.c   | 10 +++++++---
 4 files changed, 11 insertions(+), 9 deletions(-)

-- 
2.40.0.1.gaa8946217a0b


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

* [PATCH v1 1/3] jbd2: Avoid printing out the boundary
  2023-03-22 14:12 [PATCH v1 0/3] lib/string_helpers et al.: Change return value of strreplace() Andy Shevchenko
@ 2023-03-22 14:12 ` Andy Shevchenko
  2023-03-22 16:45   ` kernel test robot
  2023-03-23  9:53   ` Jan Kara
  2023-03-22 14:12 ` [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace() Andy Shevchenko
  2023-03-22 14:12 ` [PATCH v1 3/3] kobject: Use return value of strreplace() Andy Shevchenko
  2 siblings, 2 replies; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-22 14:12 UTC (permalink / raw)
  To: Kees Cook, Greg Kroah-Hartman, Andy Shevchenko, Cezary Rojewski,
	linux-ext4, linux-kernel
  Cc: Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

Theoretically possible that "%pg" will take all room for the j_devname
and hence the "-%lu" will go out the boundary due to unconditional
sprintf() in use. To make this code more robust, replace two sequential
s*printf():s by a single call and then replace forbidden character.
It's possible to do this way, because '/' won't ever be in the result
of "-%lu".

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 fs/jbd2/journal.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 8ae419152ff6..00c0aa4a3a91 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -1515,9 +1515,8 @@ journal_t *jbd2_journal_init_inode(struct inode *inode)
 
 	journal->j_inode = inode;
 	snprintf(journal->j_devname, sizeof(journal->j_devname),
-		 "%pg", journal->j_dev);
-	p = strreplace(journal->j_devname, '/', '!');
-	sprintf(p, "-%lu", journal->j_inode->i_ino);
+		 "%pg-%lu", journal->j_dev, journal->j_inode->i_ino);
+	strreplace(journal->j_devname, '/', '!');
 	jbd2_stats_proc_init(journal);
 
 	return journal;
-- 
2.40.0.1.gaa8946217a0b


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

* [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace()
  2023-03-22 14:12 [PATCH v1 0/3] lib/string_helpers et al.: Change return value of strreplace() Andy Shevchenko
  2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
@ 2023-03-22 14:12 ` Andy Shevchenko
  2023-03-22 16:51   ` Kees Cook
  2023-03-22 14:12 ` [PATCH v1 3/3] kobject: Use return value of strreplace() Andy Shevchenko
  2 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-22 14:12 UTC (permalink / raw)
  To: Kees Cook, Greg Kroah-Hartman, Andy Shevchenko, Cezary Rojewski,
	linux-ext4, linux-kernel
  Cc: Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

It's more useful to return the original string with strreplace(),
so it may be used like

	attr->name = strreplace(name, '/', '_');

While at it, amend the kernel documentation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/linux/string.h |  2 +-
 lib/string_helpers.c   | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/include/linux/string.h b/include/linux/string.h
index a7bff7ed3cb0..cb0c24ce0826 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -169,7 +169,7 @@ static inline void memcpy_flushcache(void *dst, const void *src, size_t cnt)
 #endif
 
 void *memchr_inv(const void *s, int c, size_t n);
-char *strreplace(char *s, char old, char new);
+char *strreplace(char *str, char old, char new);
 
 extern void kfree_const(const void *x);
 
diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index 230020a2e076..ab7b1577cbcf 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -979,14 +979,18 @@ EXPORT_SYMBOL(__sysfs_match_string);
 
 /**
  * strreplace - Replace all occurrences of character in string.
- * @s: The string to operate on.
+ * @str: The string to operate on.
  * @old: The character being replaced.
  * @new: The character @old is replaced with.
  *
- * Returns pointer to the nul byte at the end of @s.
+ * Replaces the each @old character with a @new one in the given string @str.
+ *
+ * Return: pointer to the original string @str.
  */
-char *strreplace(char *s, char old, char new)
+char *strreplace(char *str, char old, char new)
 {
+	char *s = str;
+
 	for (; *s; ++s)
 		if (*s == old)
 			*s = new;
-- 
2.40.0.1.gaa8946217a0b


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

* [PATCH v1 3/3] kobject: Use return value of strreplace()
  2023-03-22 14:12 [PATCH v1 0/3] lib/string_helpers et al.: Change return value of strreplace() Andy Shevchenko
  2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
  2023-03-22 14:12 ` [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace() Andy Shevchenko
@ 2023-03-22 14:12 ` Andy Shevchenko
  2 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-22 14:12 UTC (permalink / raw)
  To: Kees Cook, Greg Kroah-Hartman, Andy Shevchenko, Cezary Rojewski,
	linux-ext4, linux-kernel
  Cc: Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

Since strreplace() returns the pointer to the original string,
we may use it directly in the code.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 lib/kobject.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/kobject.c b/lib/kobject.c
index f79a434e1231..16d530f9c174 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -281,8 +281,7 @@ int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
 		kfree_const(s);
 		if (!t)
 			return -ENOMEM;
-		strreplace(t, '/', '!');
-		s = t;
+		s = strreplace(t, '/', '!');
 	}
 	kfree_const(kobj->name);
 	kobj->name = s;
-- 
2.40.0.1.gaa8946217a0b


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

* Re: [PATCH v1 1/3] jbd2: Avoid printing out the boundary
  2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
@ 2023-03-22 16:45   ` kernel test robot
  2023-03-23  9:53   ` Jan Kara
  1 sibling, 0 replies; 10+ messages in thread
From: kernel test robot @ 2023-03-22 16:45 UTC (permalink / raw)
  To: Andy Shevchenko, Kees Cook, Greg Kroah-Hartman, Cezary Rojewski,
	linux-ext4, linux-kernel
  Cc: oe-kbuild-all, Theodore Ts'o, Jan Kara, Rafael J. Wysocki

Hi Andy,

I love your patch! Perhaps something to improve:

[auto build test WARNING on driver-core/driver-core-testing]
[also build test WARNING on driver-core/driver-core-next driver-core/driver-core-linus kees/for-next/pstore kees/for-next/kspp tytso-ext4/dev linus/master v6.3-rc3 next-20230322]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/jbd2-Avoid-printing-out-the-boundary/20230322-221425
patch link:    https://lore.kernel.org/r/20230322141206.56347-2-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v1 1/3] jbd2: Avoid printing out the boundary
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20230323/202303230045.2JeedPWH-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/6154f5a987ef2ce0084db0eb245d2c3bcde2a02a
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/jbd2-Avoid-printing-out-the-boundary/20230322-221425
        git checkout 6154f5a987ef2ce0084db0eb245d2c3bcde2a02a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 olddefconfig
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/jbd2/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303230045.2JeedPWH-lkp@intel.com/

All warnings (new ones prefixed by >>):

   fs/jbd2/journal.c: In function 'jbd2_journal_init_inode':
>> fs/jbd2/journal.c:1491:15: warning: unused variable 'p' [-Wunused-variable]
    1491 |         char *p;
         |               ^


vim +/p +1491 fs/jbd2/journal.c

470decc613ab20 Dave Kleikamp     2006-10-11  1478  
470decc613ab20 Dave Kleikamp     2006-10-11  1479  /**
f7f4bccb729844 Mingming Cao      2006-10-11  1480   *  journal_t * jbd2_journal_init_inode () - creates a journal which maps to a inode.
470decc613ab20 Dave Kleikamp     2006-10-11  1481   *  @inode: An inode to create the journal in
470decc613ab20 Dave Kleikamp     2006-10-11  1482   *
f7f4bccb729844 Mingming Cao      2006-10-11  1483   * jbd2_journal_init_inode creates a journal which maps an on-disk inode as
470decc613ab20 Dave Kleikamp     2006-10-11  1484   * the journal.  The inode must exist already, must support bmap() and
470decc613ab20 Dave Kleikamp     2006-10-11  1485   * must have all data blocks preallocated.
470decc613ab20 Dave Kleikamp     2006-10-11  1486   */
f7f4bccb729844 Mingming Cao      2006-10-11  1487  journal_t *jbd2_journal_init_inode(struct inode *inode)
470decc613ab20 Dave Kleikamp     2006-10-11  1488  {
f0c9fd5458bacf Geliang Tang      2016-09-15  1489  	journal_t *journal;
30460e1ea3e62f Carlos Maiolino   2020-01-09  1490  	sector_t blocknr;
05496769e5da83 Theodore Ts'o     2008-09-16 @1491  	char *p;
30460e1ea3e62f Carlos Maiolino   2020-01-09  1492  	int err = 0;
30460e1ea3e62f Carlos Maiolino   2020-01-09  1493  
30460e1ea3e62f Carlos Maiolino   2020-01-09  1494  	blocknr = 0;
30460e1ea3e62f Carlos Maiolino   2020-01-09  1495  	err = bmap(inode, &blocknr);
470decc613ab20 Dave Kleikamp     2006-10-11  1496  
30460e1ea3e62f Carlos Maiolino   2020-01-09  1497  	if (err || !blocknr) {
f0c9fd5458bacf Geliang Tang      2016-09-15  1498  		pr_err("%s: Cannot locate journal superblock\n",
f0c9fd5458bacf Geliang Tang      2016-09-15  1499  			__func__);
f0c9fd5458bacf Geliang Tang      2016-09-15  1500  		return NULL;
f0c9fd5458bacf Geliang Tang      2016-09-15  1501  	}
f0c9fd5458bacf Geliang Tang      2016-09-15  1502  
cb3b3bf22cf337 Jan Kara          2022-06-08  1503  	jbd2_debug(1, "JBD2: inode %s/%ld, size %lld, bits %d, blksize %ld\n",
f0c9fd5458bacf Geliang Tang      2016-09-15  1504  		  inode->i_sb->s_id, inode->i_ino, (long long) inode->i_size,
f0c9fd5458bacf Geliang Tang      2016-09-15  1505  		  inode->i_sb->s_blocksize_bits, inode->i_sb->s_blocksize);
f0c9fd5458bacf Geliang Tang      2016-09-15  1506  
f0c9fd5458bacf Geliang Tang      2016-09-15  1507  	journal = journal_init_common(inode->i_sb->s_bdev, inode->i_sb->s_bdev,
f0c9fd5458bacf Geliang Tang      2016-09-15  1508  			blocknr, inode->i_size >> inode->i_sb->s_blocksize_bits,
f0c9fd5458bacf Geliang Tang      2016-09-15  1509  			inode->i_sb->s_blocksize);
470decc613ab20 Dave Kleikamp     2006-10-11  1510  	if (!journal)
470decc613ab20 Dave Kleikamp     2006-10-11  1511  		return NULL;
470decc613ab20 Dave Kleikamp     2006-10-11  1512  
470decc613ab20 Dave Kleikamp     2006-10-11  1513  	journal->j_inode = inode;
900d156bac2bc4 Christoph Hellwig 2022-07-13  1514  	snprintf(journal->j_devname, sizeof(journal->j_devname),
6154f5a987ef2c Andy Shevchenko   2023-03-22  1515  		 "%pg-%lu", journal->j_dev, journal->j_inode->i_ino);
6154f5a987ef2c Andy Shevchenko   2023-03-22  1516  	strreplace(journal->j_devname, '/', '!');
8e85fb3f305b24 Johann Lombardi   2008-01-28  1517  	jbd2_stats_proc_init(journal);
470decc613ab20 Dave Kleikamp     2006-10-11  1518  
470decc613ab20 Dave Kleikamp     2006-10-11  1519  	return journal;
470decc613ab20 Dave Kleikamp     2006-10-11  1520  }
470decc613ab20 Dave Kleikamp     2006-10-11  1521  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

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

* Re: [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace()
  2023-03-22 14:12 ` [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace() Andy Shevchenko
@ 2023-03-22 16:51   ` Kees Cook
  2023-03-23 12:26     ` Andy Shevchenko
  2023-03-23 22:23     ` David Laight
  0 siblings, 2 replies; 10+ messages in thread
From: Kees Cook @ 2023-03-22 16:51 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Greg Kroah-Hartman, Cezary Rojewski, linux-ext4, linux-kernel,
	Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

On Wed, Mar 22, 2023 at 04:12:05PM +0200, Andy Shevchenko wrote:
> It's more useful to return the original string with strreplace(),

I found the use of "original" confusing here and in the comments. This
just returns arg 1, yes? i.e. it's not the original (unreplaced) string,
but rather just the string itself.

I agree, though, that's much more useful than a pointer to the end of
the string.

-Kees

-- 
Kees Cook

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

* Re: [PATCH v1 1/3] jbd2: Avoid printing out the boundary
  2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
  2023-03-22 16:45   ` kernel test robot
@ 2023-03-23  9:53   ` Jan Kara
  2023-03-23 12:27     ` Andy Shevchenko
  1 sibling, 1 reply; 10+ messages in thread
From: Jan Kara @ 2023-03-23  9:53 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Kees Cook, Greg Kroah-Hartman, Cezary Rojewski, linux-ext4,
	linux-kernel, Theodore Ts'o, Jan Kara, Andy Shevchenko,
	Rafael J. Wysocki

On Wed 22-03-23 16:12:04, Andy Shevchenko wrote:
> Theoretically possible that "%pg" will take all room for the j_devname
> and hence the "-%lu" will go out the boundary due to unconditional
> sprintf() in use. To make this code more robust, replace two sequential
> s*printf():s by a single call and then replace forbidden character.
> It's possible to do this way, because '/' won't ever be in the result
> of "-%lu".
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/jbd2/journal.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
> index 8ae419152ff6..00c0aa4a3a91 100644
> --- a/fs/jbd2/journal.c
> +++ b/fs/jbd2/journal.c
> @@ -1515,9 +1515,8 @@ journal_t *jbd2_journal_init_inode(struct inode *inode)
>  
>  	journal->j_inode = inode;
>  	snprintf(journal->j_devname, sizeof(journal->j_devname),
> -		 "%pg", journal->j_dev);
> -	p = strreplace(journal->j_devname, '/', '!');
> -	sprintf(p, "-%lu", journal->j_inode->i_ino);
> +		 "%pg-%lu", journal->j_dev, journal->j_inode->i_ino);
> +	strreplace(journal->j_devname, '/', '!');
>  	jbd2_stats_proc_init(journal);
>  
>  	return journal;
> -- 
> 2.40.0.1.gaa8946217a0b
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

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

* Re: [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace()
  2023-03-22 16:51   ` Kees Cook
@ 2023-03-23 12:26     ` Andy Shevchenko
  2023-03-23 22:23     ` David Laight
  1 sibling, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-23 12:26 UTC (permalink / raw)
  To: Kees Cook
  Cc: Greg Kroah-Hartman, Cezary Rojewski, linux-ext4, linux-kernel,
	Theodore Ts'o, Jan Kara, Rafael J. Wysocki

On Wed, Mar 22, 2023 at 09:51:22AM -0700, Kees Cook wrote:
> On Wed, Mar 22, 2023 at 04:12:05PM +0200, Andy Shevchenko wrote:
> > It's more useful to return the original string with strreplace(),
> 
> I found the use of "original" confusing here and in the comments. This
> just returns arg 1, yes? i.e. it's not the original (unreplaced) string,
> but rather just the string itself.

Yes.

Okay, I will try my best as non-native speaker to fix that for v2. Meanwhile
I'm open ears for the better suggestions.

> I agree, though, that's much more useful than a pointer to the end of
> the string.

Thank you!

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v1 1/3] jbd2: Avoid printing out the boundary
  2023-03-23  9:53   ` Jan Kara
@ 2023-03-23 12:27     ` Andy Shevchenko
  0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2023-03-23 12:27 UTC (permalink / raw)
  To: Jan Kara
  Cc: Kees Cook, Greg Kroah-Hartman, Cezary Rojewski, linux-ext4,
	linux-kernel, Theodore Ts'o, Jan Kara, Rafael J. Wysocki

On Thu, Mar 23, 2023 at 10:53:46AM +0100, Jan Kara wrote:
> On Wed 22-03-23 16:12:04, Andy Shevchenko wrote:
> > Theoretically possible that "%pg" will take all room for the j_devname
> > and hence the "-%lu" will go out the boundary due to unconditional
> > sprintf() in use. To make this code more robust, replace two sequential
> > s*printf():s by a single call and then replace forbidden character.
> > It's possible to do this way, because '/' won't ever be in the result
> > of "-%lu".
> > 
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> Looks good. Feel free to add:
> 
> Reviewed-by: Jan Kara <jack@suse.cz>

Thank you! I'll incorporate this into v2 with dropping not anymore used
variable (as found by LKP).

-- 
With Best Regards,
Andy Shevchenko



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

* RE: [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace()
  2023-03-22 16:51   ` Kees Cook
  2023-03-23 12:26     ` Andy Shevchenko
@ 2023-03-23 22:23     ` David Laight
  1 sibling, 0 replies; 10+ messages in thread
From: David Laight @ 2023-03-23 22:23 UTC (permalink / raw)
  To: 'Kees Cook', Andy Shevchenko
  Cc: Greg Kroah-Hartman, Cezary Rojewski, linux-ext4, linux-kernel,
	Theodore Ts'o, Jan Kara, Andy Shevchenko, Rafael J. Wysocki

From: Kees Cook
> Sent: 22 March 2023 16:51
> 
> On Wed, Mar 22, 2023 at 04:12:05PM +0200, Andy Shevchenko wrote:
> > It's more useful to return the original string with strreplace(),

Won't that break anything that is using the result?

> I found the use of "original" confusing here and in the comments. This
> just returns arg 1, yes? i.e. it's not the original (unreplaced) string,
> but rather just the string itself.
> 
> I agree, though, that's much more useful than a pointer to the end of
> the string.

If you want a pointer to the start of the string, you've
already got it.
Almost all the time you can do the assignment first.

But if you want a pointer to the end you'll need to scan it again.

I have a feeling that the reason many of the string functions
return the original pointer is a historic side effect of
the original implementation.
Going back to before C had a 'return' statement.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


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

end of thread, other threads:[~2023-03-23 22:23 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-22 14:12 [PATCH v1 0/3] lib/string_helpers et al.: Change return value of strreplace() Andy Shevchenko
2023-03-22 14:12 ` [PATCH v1 1/3] jbd2: Avoid printing out the boundary Andy Shevchenko
2023-03-22 16:45   ` kernel test robot
2023-03-23  9:53   ` Jan Kara
2023-03-23 12:27     ` Andy Shevchenko
2023-03-22 14:12 ` [PATCH v1 2/3] lib/string_helpers: Change returned value of the strreplace() Andy Shevchenko
2023-03-22 16:51   ` Kees Cook
2023-03-23 12:26     ` Andy Shevchenko
2023-03-23 22:23     ` David Laight
2023-03-22 14:12 ` [PATCH v1 3/3] kobject: Use return value of strreplace() Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).