From f6b883a6b4e82a37a357985ae103ce88532e4af9 Mon Sep 17 00:00:00 2001 From: didg Date: Fri, 26 Feb 2010 14:13:16 +0000 Subject: [PATCH] ad_size: if it's a symlink don't use fstat --- libatalk/adouble/ad_size.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libatalk/adouble/ad_size.c b/libatalk/adouble/ad_size.c index b2b29cae..0b45babd 100644 --- a/libatalk/adouble/ad_size.c +++ b/libatalk/adouble/ad_size.c @@ -1,5 +1,5 @@ /* - * $Id: ad_size.c,v 1.7 2006-09-29 09:39:16 didg Exp $ + * $Id: ad_size.c,v 1.8 2010-02-26 14:13:16 didg Exp $ * * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu) * All rights reserved. See COPYRIGHT. @@ -11,6 +11,7 @@ #include "config.h" #endif /* HAVE_CONFIG_H */ +#include #include #include @@ -18,7 +19,10 @@ off_t ad_size(const struct adouble *ad, const u_int32_t eid) { if (eid == ADEID_DFORK) { struct stat st; - + + if (ad->ad_data_fork.adf_syml) + return strlen(ad->ad_data_fork.adf_syml); + if (fstat(ad_data_fileno(ad), &st) < 0) return 0; return st.st_size; -- 2.39.2