RO data

Nicholas Mc Guire der.herr at hofr.at
Mon Dec 3 01:59:09 EST 2018


HI !

 devm_kstrdup_const() will check if the pointer passed
 in is in the RO data section with is_kernel_rodata()
 But this is simply a check for address range - so how
 can one find out at code level reliably what will be in
 that RO data - or is that in principle not possible ?

 The background of this question is that there are cases
 of devm_kstrdup() that do not check the return value
 which can be NULL and are not safe - but rather than
 simply checking the return some look like they could
 be converted to devm_kstrdup_const() which would solve
 the issue in a better way e.g. 
   drivers/hwtracing/coresight/of_coresight.c:of_coresight_parse_endpoint()
 is such a case - so is there are reliable way to 
 assure that some object is in the RO section ? or 
 must one simply assume that it could be RW ?

thx!
hofrat



More information about the Kernelnewbies mailing list