tipc: Enhance error checking of published names
Consolidates validation of scope and name sequence range values into a single routine where it applies both to local name publications and to name publications issued by other nodes in the network. This change means that the scope value for non-local publications is now validated and the name sequence range for local publications is now validated only once. Additionally, a publication attempt that fails validation now creates an entry in the system log file only if debugging capabilities have been enabled; this prevents the system log from being cluttered up with messages caused by a defective application or network node. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
Родитель
f7fb9d20ad
Коммит
8f17789693
|
@ -516,9 +516,10 @@ struct publication *tipc_nametbl_insert_publ(u32 type, u32 lower, u32 upper,
|
|||
{
|
||||
struct name_seq *seq = nametbl_find_seq(type);
|
||||
|
||||
if (lower > upper) {
|
||||
warn("Failed to publish illegal {%u,%u,%u}\n",
|
||||
type, lower, upper);
|
||||
if ((scope < TIPC_ZONE_SCOPE) || (scope > TIPC_NODE_SCOPE) ||
|
||||
(lower > upper)) {
|
||||
dbg("Failed to publish illegal {%u,%u,%u} with scope %u\n",
|
||||
type, lower, upper, scope);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -992,10 +992,6 @@ int tipc_publish(u32 ref, unsigned int scope, struct tipc_name_seq const *seq)
|
|||
|
||||
if (p_ptr->connected)
|
||||
goto exit;
|
||||
if (seq->lower > seq->upper)
|
||||
goto exit;
|
||||
if ((scope < TIPC_ZONE_SCOPE) || (scope > TIPC_NODE_SCOPE))
|
||||
goto exit;
|
||||
key = ref + p_ptr->pub_count + 1;
|
||||
if (key == ref) {
|
||||
res = -EADDRINUSE;
|
||||
|
|
Загрузка…
Ссылка в новой задаче