changeset 2507:c72abf8ed304 draft

Log each malloc failure because we log individual failures so we don't see any Success error messages on an invalid condition.
author Roy Marples <roy@marples.name>
date Mon, 02 Jun 2014 23:30:50 +0000
parents 91f57d346f38
children 9f7687ad3013
files ipv6nd.c
diffstat 1 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/ipv6nd.c	Mon Jun 02 17:10:13 2014 +0000
+++ b/ipv6nd.c	Mon Jun 02 23:30:50 2014 +0000
@@ -909,9 +909,13 @@
 					opt = tmp;
 					opt[l - 1] = ' ';
 					strlcpy(opt + l, ap->saddr, m);
-				}
-			} else
+				} else
+					syslog(LOG_ERR, "%s: %m", __func__);
+			} else {
 				opt = strdup(ap->saddr);
+				if (opt == NULL)
+					syslog(LOG_ERR, "%s: %m", __func__);
+			}
 			lifetime = ap->prefix_vltime;
 			break;
 
@@ -926,6 +930,8 @@
 			rap->mtu = mtuv;
 			snprintf(buf, sizeof(buf), "%d", mtuv);
 			opt = strdup(buf);
+			if (opt == NULL)
+				syslog(LOG_ERR, "%s: %m", __func__);
 			break;
 
 		case ND_OPT_RDNSS:
@@ -964,7 +970,8 @@
 					(*--tmp) = '\0';
 				else
 					*opt = '\0';
-			}
+			} else
+				syslog(LOG_ERR, "%s: %m", __func__);
 			break;
 
 		case ND_OPT_DNSSL:
@@ -990,8 +997,12 @@
 					if (opt)
 						print_string(opt, n,
 						    (const uint8_t *)tmp, l);
+					else
+						syslog(LOG_ERR, "%s: %m",
+						    __func__);
 					free(tmp);
-				}
+				} else
+					syslog(LOG_ERR, "%s: %m", __func__);
 			}
 			break;
 
@@ -999,10 +1010,9 @@
 			continue;
 		}
 
-		if (opt == NULL) {
-			syslog(LOG_ERR, "%s: %m", __func__);
+		if (opt == NULL)
 			continue;
-		}
+
 		TAILQ_FOREACH(rao, &rap->options, next) {
 			if (rao->type == ndo->nd_opt_type &&
 			    strcmp(rao->option, opt) == 0)