forked from pool/openscap
- Update to openscap-1.3.0 - move to cmake - improve unit test, planned for inclusion with 1.3.1 - tests do no complete as of yet, still future work needed OBS-URL: https://build.opensuse.org/request/show/651059 OBS-URL: https://build.opensuse.org/package/show/security/openscap?expand=0&rev=225
31 lines
859 B
Diff
31 lines
859 B
Diff
diff --git a/src/OVAL/probes/unix/xinetd_probe.c b/src/OVAL/probes/unix/xinetd_probe.c
|
|
index 965d8cd04..e911ecc29 100644
|
|
--- a/src/OVAL/probes/unix/xinetd_probe.c
|
|
+++ b/src/OVAL/probes/unix/xinetd_probe.c
|
|
@@ -1298,6 +1298,7 @@ int op_merge_u16(void *dst, void *src, int type)
|
|
|
|
int op_assign_str(void *var, char *val)
|
|
{
|
|
+ char *strend = NULL;
|
|
if (var == NULL) {
|
|
return -1;
|
|
}
|
|
@@ -1306,7 +1307,16 @@ int op_assign_str(void *var, char *val)
|
|
while(isspace(*val)) ++val;
|
|
|
|
if (*val != '\0') {
|
|
- *((char **)(var)) = strdup(val);
|
|
+ strend = strrchr(val, '\0');
|
|
+ /* strip trailing whitespaces */
|
|
+ do {
|
|
+ strend--;
|
|
+ } while(isspace(*strend));
|
|
+ if((strend-val) < 0) {
|
|
+ dE("Error stripping white space from string '%s'", val);
|
|
+ return (-1);
|
|
+ }
|
|
+ *((char **)(var)) = strndup(val, (strend-val+1));
|
|
return (0);
|
|
} else
|
|
return (-1);
|