Re: [PATCH] proc: Escape more characters in /proc/mounts output

From: Siddhesh Poyarekar
Date: Tue Dec 15 2020 - 02:40:36 EST


On 12/15/20 11:40 AM, Al Viro wrote:
On Tue, Dec 15, 2020 at 09:54:54AM +0530, Siddhesh Poyarekar wrote:

+ get_user(byte, (const char __user *)data);
+
+ return byte ? strndup_user(data, PATH_MAX) : NULL;
}

No. Not to mention anything else, you
* fetch the same data twice
* fail to check the get_user() results


Ahh sorry, I could inline the strndup_user call and put an additional check for length == 1 to return NULL. Would that be acceptable?

The other alternative would be to not touch copy_mount_string and instead, check after fetching the string and if it is blank, free it and set to NULL. That seems more expensive though.

Siddhesh