When using a PPS source with no source clock specified with the -s
option, avoid referencing a NULL pointer and using CLOCK_INVALID in
system calls.

Signed-off-by: Miroslav Lichvar <[email protected]>
---
 phc2sys.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/phc2sys.c b/phc2sys.c
index 00090cc..0742393 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -221,7 +221,7 @@ static struct clock *clock_add(struct node *node, char 
*device)
        c->clkid = clkid;
        c->phc_index = phc_index;
        c->servo_state = SERVO_UNLOCKED;
-       c->device = strdup(device);
+       c->device = device ? strdup(device) : NULL;
 
        if (c->clkid == CLOCK_REALTIME) {
                c->source_label = "sys";
@@ -249,9 +249,10 @@ static struct clock *clock_add(struct node *node, char 
*device)
                }
        }
 
-       c->servo = servo_add(node, c);
+       if (clkid != CLOCK_INVALID)
+               c->servo = servo_add(node, c);
 
-       if (clkid != CLOCK_REALTIME)
+       if (clkid != CLOCK_INVALID && clkid != CLOCK_REALTIME)
                c->sysoff_supported = (SYSOFF_SUPPORTED ==
                                       sysoff_probe(CLOCKID_TO_FD(clkid),
                                                    node->phc_readings));
-- 
2.14.3


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to